スポンサーサイト

0

    一定期間更新がないため広告を表示しています


    • 2014.12.23 Tuesday
    • -
    • -
    • -
    • -
    • -
    • by スポンサードリンク

    今すぐSymfony2.4でKnpPaginatorBundleを使うためのcomposer.json設定

    0
      2013/12/3に、Symfony2.4が正式にstable(安定版)としてリリースされました。
      http://symfony.com/blog/symfony-2-4-0-released

      デバッグツールバーのFormパネル、セキュリティ(認証)カスタマイズの柔軟性アップなど、(開発者に)嬉しい機能が新たに追加されています。
      私も早速、Symfony2.3を使って開発したプロジェクトをSymfony2.4に対応させてみました。(諸事情あって本番サーバーには適用できなかったので飽くまで実験として、ですがorz)

      まず、変更したのはcomposer.jsonです。symfony/symfonyを"2.3.*"(2.3系列)から"~2.3"(2.3以上)に変更します。
      -        "symfony/symfony": "2.3.*"
      +        "symfony/symfony": "~2.3"
      

      サードパーティのバンドルを何も入れていない場合は、ここまででcomposerでsymfony/symfonyをupdateすればそれで完了です。
      $ composer update symfony/symfony
      あとは、自分の書いたバンドルについて2.4でエラーが出るようなら修正しましょう。

      私はKnpPaginatorBundleを入れていたので、デバッグモードでEventDispatcherが変更されたことによる影響をもろに受けて、paginatorを使う一覧系ページが軒並みエラーになりました…。
      Argument 1 passed to Knp¥Component¥Pager¥Paginator::__construct() must be an instance of Symfony¥Component¥EventDispatcher¥EventDispatcher, instance of Symfony¥Component¥HttpKernel¥Debug¥TraceableEventDispatcher given,

      エラーメッセージでGoogle検索すると割とすぐに「もう修正されてるよ」という情報が出てくるのですが、
      https://github.com/symfony/symfony/issues/9089
      https://github.com/KnpLabs/knp-components/pull/68
      https://github.com/KnpLabs/knp-components/pull/88
      https://github.com/KnpLabs/KnpPaginatorBundle/issues/223

      KnpPaginatorBundleとKnpComponentsの修正された部分がまだKnpLabsから正式版としてリリースされていないために、単にupdateしても「新しいリリースがないよ」という趣旨のエラーメッセージが出て終わってしまいます。
      色々試行錯誤したりソースを読んだりした末、KnpComponentsは1.2.4以上、KnpPaginatorBundleはmasterを使わなくてはいけないということがわかりました。
      そこで、composer.jsonにバージョンを指定します。
      -        "knplabs/knp-paginator-bundle": "2.3.*",
      +        "knplabs/knp-components": "~1.2.4",
      +        "knplabs/knp-paginator-bundle": "dev-master",
      

      knp-paginator-bundleのdev-masterだけ指定すると、knp-componentsのバージョンが自動的に1.2.3になってしまうのでknp-paginator-bundleより先にknp-componentsを1.2.4以上として指定しました。
      (私はこの組み合わせを見付けるのに2時間もかけてしまいました…orz)

      もしminimum-stabilityをstableにしている場合は、もう一点、composer.jsonの変更が必要です。
      knp-componentsがまだ安定版じゃないので、stable指定だとせっかくのベストな組み合わせが弾かれてしまいます。stableでなくdevを指定し、かつprefer-stableをtrueにすることで弾かれないようにします。
      -    "minimum-stability": "stable",
      +    "minimum-stability": "dev",
      +    "prefer-stable": true,
      

      ここまで来たら、後はcomposer updateするだけです。

      なお、KnpPaginatorBundleやKnpComponentsのリリース状況によっては、この指定は不要になる予定です。
      早く1.2.4を安定版にしてよ〜と叫んでる人がKnpComponentsのissueにたくさんいるので早晩リリースされるでしょう。たぶん。
      が、それまで待てないという方は、ぜひ上記の組み合わせをお試しください。


      スポンサーサイト

      0

        • 2014.12.23 Tuesday
        • -
        • 21:48
        • -
        • -
        • -
        • -
        • by スポンサードリンク

        コメント
        コメントする








           

        PR

        calendar

        S M T W T F S
              1
        2345678
        9101112131415
        16171819202122
        23242526272829
        30      
        << April 2017 >>

        twitter

        selected entries

        categories

        archives

        recent comment

        • 結局CodeIgniter用汎用Modelクラス&汎用CRUDスクリプトを書きました
          プログラマー
        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
          よし
        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
          ななうぇぶ
        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
          よし
        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
          よし
        • WindowsのPCで開発するphperがxhprofを使う方法
          ななうぇぶ
        • WindowsのPCで開発するphperがxhprofを使う方法
          川本
        • [バッドノウハウ]Symfony2で別テーブルの集計項目を一覧に含めたいとき
          よし
        • Symfony Advent Calendar JP 2012 day 14 - vendorをcomposerで管理しているプロジェクトにcomposerを使わずにバンドルを追加したときのautoloadの書き方
          77web
        • Symfony Advent Calendar JP 2012 day 14 - vendorをcomposerで管理しているプロジェクトにcomposerを使わずにバンドルを追加したときのautoloadの書き方
          ktz

        recent trackback

        • HTMLの表(TABLE)のセル(TD)に斜線を引くjavascriptライブラリ slash.js 作っちゃいました
          常山日記
        • django対symfony 日本語メール送信(その1 symfony編)
          CPA-LABテクニカル
        • CodeIgniterでユーザー認証
          されどLAMPな日々
        • 久々にdjangoを最新版にしたらHTMLがエスケープされちゃった!!(解決済み)
          常山日記
        • FastCGIを諦めてmod_pythonを使う。Apacheのアップグレード
          サーバー用語集
        • さくらインターネット、sqlite3でdjango@CGI版を使う際の設定メモ
          常山日記
        • さくらインターネット スタンダードプランでdjango使ってる方、DBは?
          mitszoの日記
        • python多次元リストをsort(並べ替え)する方法?
          mitszoの日記
        • フォームから送信した値とrequest.POSTの挙動($_POST@PHPとの比較)
          Humming Via Kitchen
        • 日本語テキストをtruncate@django(Python全般にも??)
          常山日記

        recommend

        links

        profile

        search this site.

        others

        mobile

        qrcode

        powered

        無料ブログ作成サービス JUGEM