LoginSignup
19
18

More than 5 years have passed since last update.

Composerを使ってみよう(CakePHP, debug_kit)

Last updated at Posted at 2014-12-04

Composer

PHPのライブラリ管理ツール。perlのCPANとかrubyのgemみたいなもの。
一昔前はPEARだったがあまり使い勝手がよくなかった。
ウインドウズ用の実行ファイルをインストールした人はコマンドプロンプトでどこからでも動かせるが、
一般的には使いたい場所で以下のコマンドを実行。

curl -sS https://getcomposer.org/installer | php

そうすると中に composer.phar というファイルが作られる。

で、同じフォルダーに以下のような内容を書いたJSONファイル composer.json を用意しておく。

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

その状態で

php composer.phar install

とすればOK。vendorフォルダーが作成されてその中にライブラリと autoload.php が作られている。
仕組みはよくわかりませんが、この autoload.php で全部のライブラリを面倒みてくれるという思想らしい。

require 'vendor/autoload.php';

とすれば、アプリ内で全てのライブラリが使用可能になる。

CakePHPでやってみる。

composer.json はこんな感じで

{
    "name": "sample_app",
    "require": {
        "cakephp/cakephp": "*"
    },
    "require-dev": {
        "phpunit/phpunit": "*",
        "cakephp/debug_kit": "2.2.*"
    },
    "config": {
        "vendor-dir": "Vendor/"
    }
}

require-dev は開発環境にのみインストールするものという意味。
--no-dev をつければ本番環境になる。

php composer.phar install --no-dev

バージョンのところはいろいろな書き方ができる。

{
    "require": {
        "vendor/package": "1.3.2",
        "vendor/package2": "1.*",
        "vendor/package3": ">=2.0.3"
    }
}

以下参照。

インストールすると /Vendor 以下にいろいろファイルが作られているのが分かる。
debug_kit はプラグインなので Plugin 以下に入る。

使い方としてはこの Vendor 以下の cakephp をコアとして、
ここからアプリを cake bake して開発するというイメージ。
なので Vendor 以下はバージョン管理しない。

php composer.phar update

をすればバージョンアップしてくれる。2.5.1→2.5.2

Config/bootstrap.php に以下を追加

Config/bootstrap.php
require ROOT . DS . 'Vendor' . DS . 'autoload.php';

spl_autoload_unregister(array('App', 'load'));
spl_autoload_register(array('App', 'load'), true, true);

debug_kitは、アプリの方の Config/bootstrap.php で

Config/bootstrap.php
App::build(array(
     'Vendor' => array(ROOT . DS . 'Vendor/'),
     'Plugin' => array(ROOT . DS . 'Plugin/'),
));

CakePlugin::load('DebugKit'); 

を追加すれば使える。
ちなみに、debug_kit はこんなので、

AppController に以下追加して、

Controller/AppController.php
class AppController extends Controller {
         public $components = array('DebugKit.Toolbar');
}

レイアウトファイル default.ctp にあった 'sql_dump' を消すだけで使える。
いろいろな情報が得られる。

19
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
18