- 追加された行はこの色です。
- 削除された行はこの色です。
[[CakePHPの設置]]
#contents
*雑感 [#ce83d434]
使いこなせてはいませんが、ざっと見た感想です。
**メリット [#d91e8798]
-利用者が多いので情報がある
-命名規則に従うことで開発工数を減らすことができる
-豊富なバリデーション機能がある
-migration機能を使うことでDB変更履歴をバージョン管理に含むことができる
**デメリット [#bf3a1b73]
-VIEWはテンプレート機能として分離されているが、phpのコードを直接書くのでコーダーには抵抗がありそう
*必要条件 [#a6495ea9]
PHP5.5.9以上~
MySQL5.1.10以上(PostgreSQLも可)
*必要なもののインストール [#sfd8ce06]
**ICUのインストール [#sb22f5dd]
ICUが無ければ入れておきます。
# yum icu libicu-devel
**intlの有効化 [#w5ef57ba]
PHPは intl が有効になっている必要があります。~
有効で無ければ --enable-intl オプションを指定してインストールし直します。
**MySQLを使用するための準備 [#i3c93535]
データベースにMySQLを使用する場合は --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd オプションを指定してインストールし直します。
php.ini にsockの位置を指定。
# vi /usr/local/lib/php.ini
pdo_mysql.default_socket=/var/lib/mysql/mysql.sock
**PostgreSQLを使用するための準備 [#n5283cd0]
データベースにPostgreSQLを使用する場合は --with-pdo-pgsql オプションを指定してインストールし直します。
*Composerのインストール [#v40e4e89]
CakePHP3系はComposerを利用するため、先にインストールします。
# cd /usr/local/bin
# curl -s https://getcomposer.org/installer | php
*CakePHPのインストール [#dc1cdab1]
my_app_nameというフォルダにアプリケーションを作成する場合。
# exit
$ cd /home
$ php /usr/local/bin/composer.phar create-project --prefer-dist cakephp/app my_app_name
作成されたフォルダ内に生成される以下の2つのファイルは残しておくと Composer で引き続き管理ができます。
-composer.json
-composer.lock
*MySQLを使用するための設定 [#y767022c]
$ vi config/app.php
# 'quoteIdentifiers' => false,
'quoteIdentifiers' => true,
*PostgreSQLを使用するための設定 [#tf36d12f]
PostgreSQLを使用する場合は設定ファイルの default と test の2箇所を書き換えます。
$ vi config/app.php
# 'driver' => 'Cake\Database\Driver\Mysql',
'driver' => 'Cake\Database\Driver\Postgres',
*timezoneの設定 [#kacd8623]
config/bootstrap.php を変更します。
date_default_timezone_set('Asia/Tokyo');
*データベースの作成 [#a2333756]
SQL文で作成することはもちろんですが、Migrationsの機能を利用することでDB変更履歴をバージョン管理に含めることができるようです。
http://book.cakephp.org/3.0/ja/migrations.html
テーブルprefsのファイルを作成する場合、
$ bin/cake bake migration CreatePrefs name:string created modified
これで config/Migrations 以下にファイル名に日付などが付いたファイルが生成されます。~
この時点ではデータベースにはテーブルは生成されていません。
idは自動的に付加されます。~
createdとmodifiedはこの名前で生成すると自動的にdatetime型が設定され、それぞれの日時がCakePHPによって更新されるようになるので便利です。
実際に反映させるには以下を実行します。
$ bin/cake migrations migrate
ステータスは以下で確認できます。
$ bin/cake migrations status
**初期データの生成 [#f884ab26]
以下を実行することで基本となるファイルを生成できます。
$ bin/cake bake seed Prefs
config/Seeds/PrefsSeed.php ファイルが生成されるので、この中を編集します。
#$data = [];
$data = [
['id' => 1, 'name' => '北海道'],
['id' => 2, 'name' => '青森県'],
];
反映するには以下を実行します。
$ bin/cake migrations seed
seedは履歴管理に含まれないので、実行するたびにデータ投入されるため注意が必要です。
*bakeでプログラムの基本を自動生成 [#fafcf6d1]
データベースを事前に作成しておくとbakeコマンドで基本的なプログラムを自動的に生成することができます。
なので、データベースの設計をきちんとして作成しておくと後々楽ができそうです。
各テーブルに対して実行することができます。~
prefsテーブルに対してすべてのプログラムを生成する場合は、
$ bin/cake bake all prefs
src と tests 以下の Controller, Model, Template にそれぞれ生成されます。
*入門 [#wda4aab9]
以下の順番で読み進めると理解が深まりそうです。~
特に[[命名規則:http://book.cakephp.org/3.0/ja/intro/conventions.html]]は理解しておくといろいろお得がありそうです。
-[[ブログチュートリアル:http://book.cakephp.org/3.0/ja/tutorials-and-examples/blog/blog.html]]
-[[ブックマークチュートリアル:http://book.cakephp.org/3.0/ja/tutorials-and-examples/bookmarks/intro.html]]
-[[初心者のためのCakePHP3 プログラミング入門:http://libro.tuyano.com/index2?id=4536003]]
*CakePHPを最新に保つ [#n52019fb]
composer.json 内に記述されている制限の範囲内で更新されます。
"require": {
"cakephp/cakephp": "~3.2"
}
$ cd /home/my_app_name
$ php /usr/local/bin/composer.phar update