SlideShare a Scribd company logo
Composerを利用した
       FuelPHPのパッケージ管理方法

                   @nasneg




13年3月23日土曜日
パッケージとは
              •   コードを整理する優れた方法

              •   サードパーティライブラリを維持する場所を提供

              •   誰かのコードを変更する事なく拡張する事ができる

              •   coreファイルを変更する事なく拡張する事ができる




                     FuelPHP用のライブラリ


13年3月23日土曜日
提供されているパッケージ


              •   oil
              •   auth
              •   email
              •   log
              •   orm
              •   parser




13年3月23日土曜日
パッケージの配置場所
          .
          !"" fuel
          # !"" LICENSE           fuel/packages
          # !"" app
          # !"" core
          # $"" packages
          !"" oil
          $"" public
              !"" assets
              $"" index.php



              fuel/app/config/config.php
          267      'package_paths' => array(
          268         //PKGPATH              ここにパスを追加
          269      ),




13年3月23日土曜日
パッケージのインストール方法



         1.   package_pathsで設定されているディレクトリに手動で配置する

         2.   oilコマンドでインストールする

         3.   composer/installersでインストールする




13年3月23日土曜日
oilコマンドを利用したパッケージ管理

              php oil package install fuel-oauth

              fuel/core/config/package.php
              30   'sources' => array(
              31      'github.com/fuel-packages',
              32   ),




13年3月23日土曜日
oilでの管理パッケージの追加
          coreのconfigをapp用にコピー
          cp fuel/core/config/package.php fuel/app/config/

              fuel/app/config/package.php           パッケージディレクトリ
          30     'sources' => array(              .
          31        'github.com/fuel-packages',   !""   fuel
          32        'github.com/egmc',            #     !"" app
          33     ),                               #     !"" core
                                                  #     $"" packages
          php oil package install fuel-dsauth     #          !"" auth
                                                  #          !"" email
                                                  #          !"" fuel-dsauth
                                                  #          !"" log
                                                  #          !"" oil
                                                  #          !"" orm
                                                  #          $"" parser




13年3月23日土曜日
composer/installersを利用した
                                    パッケージ管理


                                              Composerとは
     Rubyのbundler、Nodeのnpmに強く影響を受けた
     PHP用の依存管理ツール
              URL : http://getcomposer.org/
              日本語訳 : https://github.com/kawahara/composer/tree/japanese-doc-progress/jpdoc




13年3月23日土曜日
composer/installersを利用した
                                      パッケージ管理
              Composerの使用方法

              1.composer.jsonを作成する

              {
                    "require": {
                        "monolog/monolog": "1.2.*"
                    }
              }

              2.composerのインストールを実行する
              composer.phar install

              3.composer.jsonの設定に従った依存関係がインストールされる
              .
              !""   composer.json
              !""   composer.lock
              !""   composer.phar
              $""   vendor
                    !"" autoload.php
                    !"" composer
                    $"" monolog


13年3月23日土曜日
composer/installersを利用した
                                    パッケージ管理

     composer/installersは、Composerの中の「composer-installer」の機能を利用して
     様々なPHPフレームワーク、CMSのライブラリを管理することができるツールです。
                 composer/installersのURL:https://github.com/composer/installers
                 composer-installerのURL:http://getcomposer.org/doc/articles/custom-installers.md




              対応フレームワーク
                 •   AGL                                 •   MediaWiki
                 •   CakePHP2                            •   phpBB
                 •   CodeIgniter                         •   PPI
                 •   Drupal                              •   SilverStripe
                 •   FuelPHP                             •   Symfony1
                 •   Joomla                              •   TYPO3 Flow
                 •   Kohana                              •   WordPress
                 •   Laravel                             •   Yii
                 •   Lithium                             •   Zend
                 •   Magento                             •   Aura
                 •   Mako                                •   Symfony2


13年3月23日土曜日
composer/installersを利用した
                                 パッケージ管理
        1.FuelPHPのパッケージにcomposer.jsonを記述する

         FulePHPのパッケージ : composer.json
        {
              "name": "nasneg/fuel-samplepackage",
              "type": "fuel-package",                “fuel-package” or “fuel-module”
              "require": {
                  "composer/installers": "*"
              }
        }

        2.githubなどのVCSに登録する

        3.Packagistに登録する(任意)




13年3月23日土曜日
composer/installersを利用した
                                          パッケージ管理
                                          (Packagistに登録済みの場合)
              1.FuelPHPのプロジェクトルートにcomposer.jsonを記述
              {
                     "require": {
                         "nasneg/fuel-samplepackage": "dev-master"
                     }
              }

              2.composerのインストールを実行する
              composer.phar install

              3.fuel-samplepackageが「fuel/packages」ディレクトリにインストールされる
              .
              !""   composer.json
              !""   composer.lock
              !""   composer.phar
              !""   fuel
              #     !"" app
              #     !"" core
              #     $"" packages
              #          !"" auth
              #          !"" email
              #          !"" fuel-samplepackage




13年3月23日土曜日
composer/installersを利用した
                                     パッケージ管理
                              (composer.jsonが記述されていない場合)


              1.VCSを利用したcomposer.jsonの記述方法
              {
                  "repositories": [
                      {
                          "type": "package",
                          "package": {
                               "name": "egmc/fuel-dsauth",
                               "type": "fuel-package",
                               "version": "dev-master",
                               "source": {
                                   "url": "https://github.com/egmc/fuel-dsauth/",
                                   "type": "git",
                                   "reference": "origin/master"
                               },
                               "require": {
                                   "composer/installers": "*"
                               }
                          }
                      }
                  ],
                  "require": {
                      "egmc/fuel-dsauth": "dev-master"
                  }
              }




13年3月23日土曜日
composer/installersを利用した
                                     パッケージ管理
                              (composer.jsonが記述されていない場合)


              1.パッケージ化されたデータを利用したcomposer.jsonの記述方法
              {
                  "repositories": [
                      {
                          "type": "package",
                          "package": {
                               "name": "egmc/fuel-dsauth",
                               "type": "fuel-package",
                               "version": "dev-master",
                               "dist": {
                                   "url": "https://github.com/egmc/fuel-dsauth/archive/master.zip",
                                   "type": "zip"
                               },
                               "require": {
                                   "composer/installers": "*"
                               }
                          }
                      }
                  ],
                  "require": {
                      "egmc/fuel-dsauth": "dev-master"
                  }
              }




13年3月23日土曜日
まとめ

              •   composer/installersを利用する事で、パッケージを一括で管理できる

              •   依存管理ツールで管理する事で、環境の複製が容易に作成できる




13年3月23日土曜日

More Related Content

Composerを利用した FuelPHPのパッケージ管理方法

  • 1. Composerを利用した FuelPHPのパッケージ管理方法 @nasneg 13年3月23日土曜日
  • 2. パッケージとは • コードを整理する優れた方法 • サードパーティライブラリを維持する場所を提供 • 誰かのコードを変更する事なく拡張する事ができる • coreファイルを変更する事なく拡張する事ができる FuelPHP用のライブラリ 13年3月23日土曜日
  • 3. 提供されているパッケージ • oil • auth • email • log • orm • parser 13年3月23日土曜日
  • 4. パッケージの配置場所 . !"" fuel # !"" LICENSE fuel/packages # !"" app # !"" core # $"" packages !"" oil $"" public !"" assets $"" index.php fuel/app/config/config.php 267 'package_paths' => array( 268 //PKGPATH ここにパスを追加 269 ), 13年3月23日土曜日
  • 5. パッケージのインストール方法 1. package_pathsで設定されているディレクトリに手動で配置する 2. oilコマンドでインストールする 3. composer/installersでインストールする 13年3月23日土曜日
  • 6. oilコマンドを利用したパッケージ管理 php oil package install fuel-oauth fuel/core/config/package.php 30 'sources' => array( 31 'github.com/fuel-packages', 32 ), 13年3月23日土曜日
  • 7. oilでの管理パッケージの追加 coreのconfigをapp用にコピー cp fuel/core/config/package.php fuel/app/config/ fuel/app/config/package.php パッケージディレクトリ 30 'sources' => array( . 31 'github.com/fuel-packages', !"" fuel 32 'github.com/egmc', #   !"" app 33 ), #   !"" core #   $"" packages php oil package install fuel-dsauth #   !"" auth #   !"" email #   !"" fuel-dsauth #   !"" log #   !"" oil #   !"" orm #   $"" parser 13年3月23日土曜日
  • 8. composer/installersを利用した パッケージ管理 Composerとは Rubyのbundler、Nodeのnpmに強く影響を受けた PHP用の依存管理ツール URL : http://getcomposer.org/ 日本語訳 : https://github.com/kawahara/composer/tree/japanese-doc-progress/jpdoc 13年3月23日土曜日
  • 9. composer/installersを利用した パッケージ管理 Composerの使用方法 1.composer.jsonを作成する { "require": { "monolog/monolog": "1.2.*" } } 2.composerのインストールを実行する composer.phar install 3.composer.jsonの設定に従った依存関係がインストールされる . !"" composer.json !"" composer.lock !"" composer.phar $"" vendor !"" autoload.php !"" composer $"" monolog 13年3月23日土曜日
  • 10. composer/installersを利用した パッケージ管理 composer/installersは、Composerの中の「composer-installer」の機能を利用して 様々なPHPフレームワーク、CMSのライブラリを管理することができるツールです。 composer/installersのURL:https://github.com/composer/installers composer-installerのURL:http://getcomposer.org/doc/articles/custom-installers.md 対応フレームワーク • AGL • MediaWiki • CakePHP2 • phpBB • CodeIgniter • PPI • Drupal • SilverStripe • FuelPHP • Symfony1 • Joomla • TYPO3 Flow • Kohana • WordPress • Laravel • Yii • Lithium • Zend • Magento • Aura • Mako • Symfony2 13年3月23日土曜日
  • 11. composer/installersを利用した パッケージ管理 1.FuelPHPのパッケージにcomposer.jsonを記述する FulePHPのパッケージ : composer.json { "name": "nasneg/fuel-samplepackage", "type": "fuel-package", “fuel-package” or “fuel-module” "require": { "composer/installers": "*" } } 2.githubなどのVCSに登録する 3.Packagistに登録する(任意) 13年3月23日土曜日
  • 12. composer/installersを利用した パッケージ管理 (Packagistに登録済みの場合) 1.FuelPHPのプロジェクトルートにcomposer.jsonを記述 { "require": { "nasneg/fuel-samplepackage": "dev-master" } } 2.composerのインストールを実行する composer.phar install 3.fuel-samplepackageが「fuel/packages」ディレクトリにインストールされる . !"" composer.json !"" composer.lock !"" composer.phar !"" fuel #   !"" app #   !"" core #   $"" packages #   !"" auth #   !"" email #   !"" fuel-samplepackage 13年3月23日土曜日
  • 13. composer/installersを利用した パッケージ管理 (composer.jsonが記述されていない場合) 1.VCSを利用したcomposer.jsonの記述方法 { "repositories": [ { "type": "package", "package": { "name": "egmc/fuel-dsauth", "type": "fuel-package", "version": "dev-master", "source": { "url": "https://github.com/egmc/fuel-dsauth/", "type": "git", "reference": "origin/master" }, "require": { "composer/installers": "*" } } } ], "require": { "egmc/fuel-dsauth": "dev-master" } } 13年3月23日土曜日
  • 14. composer/installersを利用した パッケージ管理 (composer.jsonが記述されていない場合) 1.パッケージ化されたデータを利用したcomposer.jsonの記述方法 { "repositories": [ { "type": "package", "package": { "name": "egmc/fuel-dsauth", "type": "fuel-package", "version": "dev-master", "dist": { "url": "https://github.com/egmc/fuel-dsauth/archive/master.zip", "type": "zip" }, "require": { "composer/installers": "*" } } } ], "require": { "egmc/fuel-dsauth": "dev-master" } } 13年3月23日土曜日
  • 15. まとめ • composer/installersを利用する事で、パッケージを一括で管理できる • 依存管理ツールで管理する事で、環境の複製が容易に作成できる 13年3月23日土曜日