ComposerでいれたCakephpを動かしてみる

ComposerでCakephpとPHPUnitを入れてみたの続きです

bake でプロジェクトを作ります
プロジェクト名はappにしました

/home/user/ws/vagrant/precise/cakephp/
がカレントディレクトリのときの実行結果です

$ Vendor/bin/cake bake project app

Welcome to CakePHP v2.6.1 Console
---------------------------------------------------------------
App : cakephp
Path: /home/user/ws/vagrant/precise/cakephp/
---------------------------------------------------------------
Skel Directory: /home/user/ws/vagrant/precise/cakephp/Vendor/cakephp/cakephp/lib/Cake/Console/Templates/skel
Will be copied to: /home/user/ws/vagrant/precise/cakephp/app
---------------------------------------------------------------
Look okay? (y/n/q) 
[y] > y
---------------------------------------------------------------
Created: app in /home/user/ws/vagrant/precise/cakephp/app
---------------------------------------------------------------
 * Random hash key created for 'Security.salt'
 * Random seed created for 'Security.cipherSeed'
 * Cache prefix set
 * app/Console/cake.php path set.
CakePHP is not on your `include_path`, CAKE_CORE_INCLUDE_PATH will be hard coded.
You can fix this by adding CakePHP to your `include_path`.
 * CAKE_CORE_INCLUDE_PATH set to /home/user/ws/vagrant/precise/cakephp/Vendor/cakephp/cakephp/lib in webroot/index.php
 * CAKE_CORE_INCLUDE_PATH set to /home/user/ws/vagrant/precise/cakephp/Vendor/cakephp/cakephp/lib in webroot/test.php
   * Remember to check these values after moving to production server
Project baked successfully!

Security.saltとSecurity.cipherSeedは勝手に生成してくれるようです

CAKE_CORE_INCLUDE_PATHを変えます

$ vim app/webroot/index.php

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

autoloaderを調整します

$ vim app/Config/bootstrap.php

// composerのautoloadを読み込み
require ROOT . DS . 'Vendor/autoload.php';

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

ROOTが作成したappの一つ上、DSはDIRECTORY_SEPARATORで、ディレクトリの区切り文字です

データベースを用意します
mysqlを入れていたので、cakephpという名前でcreate databaseしておいて
設定ファイルのベースをコピー
$ cp app/Config/database.php.default
$ vim app/Config/database.php

データベース名、データベースユーザー、パスワードを変更します

で、画面にアクセスすると
cakephp-top

DebugKitを入れてない他はクリアしました

参考:
Cakephpでルーティングが動かない!? – bgbgbg

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください