スポンサーサイト

0

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


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

    composerで管理してるSymfony2のプロジェクトでZendFramework2のZendPdfを使う

    0
      なんでもそろってる(ように見える)Symfony Componentですが、実はPDF関係がありませんw

      で、ZendFrameworkにはZendPdfがあるので、サクッとそっちを使います。
      こういうときPSR-0が非常にありがたいですね♪

      …といってもZendFramework2にはまだ(?)ZendPdfが含まれてないのですね。
      でもgithubにレポジトリがあります。
      https://github.com/zendframework/ZendPdf

      build statusがunknownになってたりとやや不安ではありますが…。
      まぁソースを見たらほとんどzf1でのZendPdfにnamespaceつけただけっぽいので大丈夫でしょう。たぶん。
      ということで、人柱になってみることにしました。


      Symfony2のプロジェクト全体をcomposerで管理しているのでZendPdfのインストールもcomposerを使います。

      自分のプロジェクトのcomposer.jsonを開き、requireの末尾に
      "zendframework/zendpdf": "dev-master"

      を足しました。
      早速 composer.phar update してみると、パッケージが無いよ、と怒られます。

      そこで、repositories設定を足すことにします。
      公式サイトにはtypeをcomposerにしてhttps://packages.zendframework.com/を足せと書いてあります。
      が、これをそのまま加えてcomposer.phar updateすると、パッケージは見つかるものの、バージョンポリシーがどうのこうの(要するにdev以上のステータスのものがないよ)build status: unknownがここで効いてきたっぽいorz
      ここで色々試行錯誤したのですが、最終的にはtypeをvcsにしてgithubのレポジトリのURLをセットしたらcomposer.phar updateでインストールできるようになりました。

          "require" : {
            (略)
            "zendframework/zendpdf": "dev-master"
          },
          "repositories": [
           {
             "type": "vcs",
             "url": "https://github.com/zendframework/ZendPdf"
           }
         ],



      ZendPdf使えたー!やったー!だけで良い人はここまで。以下は余談です。


      ……………
      実は、上記の設定でcomposer.phar updateをするとzendframework/zendframeworkとzendframework/zendpdfの二つのパッケージがインストールされます。

      zendframework/zendframeworkは言わずと知れたZendFramework2の総合パッケージです。容量でかいです。
      開発環境だけならまだ良いですが、ライブラリがやたらと肥大するのはサーバーにリリースする時に不便です。(転送に時間かかったり、サーバーマシンのメモリではcomposerで初期化する時やたらと時間がかかったり)

      でも、ZendPdfのcomposer.jsonを見ると
      https://github.com/zendframework/ZendPdf/blob/master/composer.json
      依存ライブラリはzend-memoryとzend-stdlibだけのようです。
      つまり、最低限zend-stdlibとzend-memoryだけ入れればZendPdfは動く(はず)わけで、他の大量のライブラリは要らないわけです。

      そこで、composer.jsonを下記のように書き換えてみることにしました。
      zend-stdlibとzend-memoryへの依存を明示してあげます。

          "require" : {
            (略)
            "zendframework/zend-stdlib" : ">=2.0.0",

            "zendframework/zend-memory" : ">=2.0.0",
            "zendframework/zendpdf": "dev-master"
          },
          "repositories": [
           {
             "type": "vcs",
             "url": "https://github.com/zendframework/ZendPdf"
           },
           {
              "type": "composer",
              "url": "https://packages.zendframework.com/"
           }
         ],


      この状態でcomposer.phar updateすることで、無事にzend-stdlib,zend-memory,zendpdfだけが入りました。


      1

      PR

      calendar

      S M T W T F S
        12345
      6789101112
      13141516171819
      20212223242526
      2728293031  
      << January 2013 >>

      twitter

      selected entries

      categories

      archives

      recent comment

      • djangoテンプレート上でmodelのメソッドに引数を渡す方法(djangoで出勤簿アプリ試作中♪)
        GavannITサービス-なりとみ
      • 私がそれでも名古屋市に住み続ける理由を6つにまとめてみた!
        bose wireless speaker
      • FastCGIでdjango…400エラー???
        levi's
      • さくらインターネットdjangoが突然500エラー!?(Pythonバージョンアップされてた
        salomon running shoes
      • 私がそれでも名古屋市に住み続ける理由を6つにまとめてみた!
        louboutin shoes
      • FastCGIでdjango…400エラー???
        yeezy boost 350
      • さくらインターネットdjangoが突然500エラー!?(Pythonバージョンアップされてた
        jordan 11
      • Silexでエラーページをカスタマイズする方法 : Symfony Advent Calendar 2011 - day 12
        pandora jewelry
      • django対symfony 日本語メール送信(その1 symfony編)
        nike air vapormax
      • 解決!XREAでCGI版Pythonを使ってdjangoを動かす(人柱?)
        kate spade

      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