SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
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日土曜日

Más contenido relacionado

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

Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開Shogo Kawahara
 
Rescale で Singularity を使ってみよう!
Rescale で Singularity を使ってみよう!Rescale で Singularity を使ってみよう!
Rescale で Singularity を使ってみよう!Shinnosuke Furuya
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Masahito Zembutsu
 
恋に落ちるデプロイツール
恋に落ちるデプロイツール恋に落ちるデプロイツール
恋に落ちるデプロイツールtotty jp
 
Docker handson
Docker handsonDocker handson
Docker handsonkoda3
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介Etsuji Nakai
 
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-靖 小田島
 
ソフトウェア工学2023 14 ビルド
ソフトウェア工学2023 14 ビルドソフトウェア工学2023 14 ビルド
ソフトウェア工学2023 14 ビルドToru Tamaki
 
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までDocker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までMasahito Zembutsu
 
How to build LibreOffice on your desktop (日本語版)
How to build LibreOffice on your desktop (日本語版)How to build LibreOffice on your desktop (日本語版)
How to build LibreOffice on your desktop (日本語版)Masataka Kondo
 
Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料Nobuhiro Iwamatsu
 
Customize CakePHP bake
Customize CakePHP bakeCustomize CakePHP bake
Customize CakePHP bakeKazuyuki Aoki
 
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMSDrupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMSTomoki Hasegawa
 
PHPのライブラリをcomposer経由で公開した話
PHPのライブラリをcomposer経由で公開した話PHPのライブラリをcomposer経由で公開した話
PHPのライブラリをcomposer経由で公開した話mirai_iro
 
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座Masahito Zembutsu
 
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8Satoshi Ohkubo
 

Similar a Composerを利用した FuelPHPのパッケージ管理方法 (20)

Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開
 
Rescale で Singularity を使ってみよう!
Rescale で Singularity を使ってみよう!Rescale で Singularity を使ってみよう!
Rescale で Singularity を使ってみよう!
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
 
Gunosy_go_8_runtime
Gunosy_go_8_runtimeGunosy_go_8_runtime
Gunosy_go_8_runtime
 
恋に落ちるデプロイツール
恋に落ちるデプロイツール恋に落ちるデプロイツール
恋に落ちるデプロイツール
 
Openstack chef-repo
Openstack chef-repoOpenstack chef-repo
Openstack chef-repo
 
Docker handson
Docker handsonDocker handson
Docker handson
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
 
ソフトウェア工学2023 14 ビルド
ソフトウェア工学2023 14 ビルドソフトウェア工学2023 14 ビルド
ソフトウェア工学2023 14 ビルド
 
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までDocker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
 
How to build LibreOffice on your desktop (日本語版)
How to build LibreOffice on your desktop (日本語版)How to build LibreOffice on your desktop (日本語版)
How to build LibreOffice on your desktop (日本語版)
 
Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料
 
Customize CakePHP bake
Customize CakePHP bakeCustomize CakePHP bake
Customize CakePHP bake
 
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMSDrupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
 
Capistrano
CapistranoCapistrano
Capistrano
 
PHPのライブラリをcomposer経由で公開した話
PHPのライブラリをcomposer経由で公開した話PHPのライブラリをcomposer経由で公開した話
PHPのライブラリをcomposer経由で公開した話
 
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
 
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
 

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日土曜日