[CakePHP2]アプリケーションのスケルトン構築手順メモ

久しぶりにCakePHP2系の案件なので、アプリケーションの骨組みとなるスケルトン構築手順についてメモします。

ComposerでCakePHP2系のインストール

composer.pharにPATHが通っている前提で進めます。*[1]

基本的には「応用インストール – 2.x」このページの通り進めますが、異なるやり方をする箇所は都度記述します。

composer.jsonを作成

CakePHPをcomposerインストールするためのcomposer.jsonを作成します。
コンソールから

composer require cakephp/cakephp "<3.0.0"

上記のようにインストールすることも出来ますが、Cookbookにならってvendor-dirVendorに変更*[2] するため、マニュアル通りすすめます。
ちなみにインストールするパスは/var/www/とし、cakephpのバージョンは"<3.0.0"で2系の最新となるように設定します。

/var/www/composer.json

{
    "name": "example-app",
    "require": {
        "cakephp/cakephp": "<3.0.0"
    },
    "config": {
        "vendor-dir": "Vendor/"
    }
}

さらに、PHPUnitやCakePHPのプラグインDebugkitなどのライブラリもcomposer.jsonに追加します。

PHPUnit ? The PHP Testing Framework
cakephp/debug_kit at 2.2
cakephp/cakephp-codesniffer: CakePHP Code Sniffer
CakeDC/users at 2.x
slywalker/cakephp-plugin-boost_cake: Bootstrap Plugin for CakePHP

{
  "name": "astha/example-app",
  "description": "The CakePHP2 Skeleton for Astha",
  "authors": [
    {
      "name": "Astha co.ltd.",
    }
  ],
  "require": {
    "php": ">=5.3.0",
    "cakephp/cakephp": ">=2.7.9,<3.0.0",
    "cakedc/users": "2.*"
  },
  "require-dev": {
    "phpunit/phpunit": "3.7.*",
    "cakephp/debug_kit" : ">=2.2.4,<3.0.0",
    "slywalker/boost_cake": "*",
    "cakephp/cakephp-codesniffer": ">=1.0.0"
  },
  "config": {
    "vendor-dir": "Vendor/"
  },
  "extra": {
    "installer-paths": {
      "./Common/plugins/{$name}/": [
        "cakephp/debug_kit",
        "slywalker/boost_cake",
    "cakedc/users"
      ]
    }
  }
}

注目すべきはconfigではvendorのディレクトリを指定していることに、extraでCakePHPのプラグインのインストールパスを指定していることです。

/Common/plugins/{$name}/というパスは、複数のアプリケーションでプラグインやモデルを使い回せるように弊社で行っている独特な指定なので、通常の環境には当てはまらないことに注意してください。

composer install

コンソールからcomposer installを実行。

cd /var/www
composer install

bakeコマンドでprojectを作成

今までの作業で/var/www/Vendor/bincakeコマンドが置かれているので以下のコマンドでappプロジェクトを作成する。

Vendor/bin/cake bake project /var/www/app

/var/wwwappディレクトリが作成され、必要なファイルが一式揃う。

コアのパス修正

bakeで作成されたプロジェクトから参照されるCAKE_CORE_INCLUDE_PATHが正しくないので、次の箇所を修正する。

app/webroot/index.php
DS . APP_DIRが不要。

define('CAKE_CORE_INCLUDE_PATH',  ROOT . DS . APP_DIR . DS . 'Vendor' . DS . 'cakephp' . DS . 'cakephp' . DS . 'lib');
↓
define('CAKE_CORE_INCLUDE_PATH',  ROOT . DS . 'Vendor' . DS . 'cakephp' . DS . 'cakephp' . DS . 'lib');

CakePHPの初期設定

app/Config内のファイルを設定していきます。

core.php

このファイルで必ず触らなければならないのはSecurity.saltSecurity.cipherSeedです。直前のコメントに従ってそれぞれ任意の文字列を指定します。

bootstrap.php

App::Build

弊社ではModelHelperComponentPluginを複数のアプリケーションで使い回せるように、ルートディレクトリにCommonディレクトリを作成して*[3] 格納しています。
そのためApp::buildを以下のように設定します。

    App::build(array(
        'Model' => array(ROOT . DS . 'Common' . DS . 'Model' . DS),
        'Model/Datasource' => array(ROOT . DS . 'Common' . DS . 'Model' . DS . 'Datasource' . DS),
        'Model/Behavior' => array(ROOT . DS . 'Common' . DS . 'Model' . DS . 'Behavior' . DS),
        'View/Helper' => array(
            ROOT . DS . 'Common' . DS . 'Helper' . DS,
            APP . DS . 'View' . DS . 'Helper' . DS,
        ),
        'Controller/Component' => array(ROOT . DS . 'Common' . DS . 'Component' . DS),
        'Plugin' => array(ROOT . DS . 'Common' . DS . 'plugins' . DS, APP . DS . 'Plugin' . DS),
    ));

CakePlugin::load

プラグインのロードの記述。

    CakePlugin::load('DebugKit');
    CakePlugin::load('BoostCake');
    CakePlugin::load('Users', ['routes' => true]);

Usersプラグインの設定

    // Users設定
    Configure::write('Users.emailConfig', 'default');
    Configure::write('App.defaultEmail','info@example.com');
    Configure::write('Users.roles', array(
        'admin' => '管理者',
        'user' => '一般ユーザ'
    ));
    // ユーザ自身の登録を許さない
    Configure::write('Users.allowRegistration', false);

database.php

データベースの設定

email.php

メール送信設定

  1. 通っていない環境ならcomposer/[設置場所]/composer.pharに読み替えてください []
  2. デフォルトではvendorとなる []
  3. 今回なら/var/www/Common []
スポンサーリンク
336x280_1
336x280_1

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
336x280_1