どんどこすすむの日記

どんどこすすむオフィシャルブログ

cakephpをcomposerでインストール

環境

準備

下記をインストールしておく

composerでインストール

インストールするプロジェクトのディレクトリにcomposer.jsonを配置

{
    "name": "example-app",
    "require": {
        "cakephp/cakephp": "2.5.*",
        "ext-mcrypt": "*"
    },
    "config": {
        "vendor-dir": "Vendor/"
    }
}

composerをえいっ!

$ composer install

Venderディレクトリ以下にインストールされる。

.
├── Vendor
│   ├── autoload.php
│   ├── bin
│   ├── cakephp
│   └── composer
├── composer.json
└── composer.lock

bakeコマンドでプロジェクトのスケルトン(骨組み)を自動生成する

$ ./Vendor/bin/cake bake project /hoge/app

  projectスケルトンが生成される

.
├── Config
├── Console
├── Controller
├── Lib
├── Locale
├── Model
├── Plugin
├── Test
├── Vendor
├── View
├── composer.json
├── composer.lock
├── index.php
├── tmp
└── webroot

各種設定

CAKE_CORE_INCLUDE_PATHが絶対パスになっているので相対パスに変更
一応、webroot/test.phpも同じ修正をする。

$ vi ./webroot/index.php
<?php
define(
    'CAKE_CORE_INCLUDE_PATH',
    ROOT . DS . APP_DIR . DS . 'Vendor' . DS . 'cakephp' . DS . 'cakephp' . DS . 'lib'
);

composerオートローダーとcakephpのオートローダーが競合するための対応

$ vi ./Config/bootstrap.php
<?php
// composerのautoloadを読み込み
require APP . 'Vendor/autoload.php';

// CakePHPのオートローダーをいったん削除し、composerより先に評価されるように先頭に追加する
spl_autoload_unregister(array('App', 'load'));
spl_autoload_register(array('App', 'load'), true, true);

ローカル開発用に

  • apacheのvirtualhostの設定
  • /etc/hostsの設定

cakephpのページが表示された!

DBの設定

  • Config/database.php.defaultをコピーしてdefault.phpを作成
  • DB接続情報を設定.
  • 日本語を扱う場合はutf-8

DebugKitプラグインをインストール

composer.jsonに以下を追加

    "require": {
        "cakephp/debug_kit": "2.2.*"
    },
$ composer update

Plugin/DebugKit/ができる

Config/bootstrap.phpに以下を追加

<?php
CakePlugin::loadAll();

参考

http://book.cakephp.org/2.0/en/installation/advanced-installation.html