WEBOPIXEL

ビルトインウェブサーバー+SQLiteでお手軽にCakePHP3の開発を始める

Posted: 2015.11.24 / Category: CakePHP 

CakePHP3になりPHPのビルトインウェブサーバーを利用した簡易的なサーバーが内臓されました。
この機能とSQLite(これもPHPに含まれている)を使用すればApacheなど環境を構築しなくてもWebアプリの開発を始めることができます。

Sponsored Link

CakePHP3のインストール

CakePHPはcomposerからインストールをします。

composer create-project –prefer-dist cakephp/app test-project

最後の引数はプロジェクト名なので変更してください。

途中パーミッション設定を聞かれますがそのままEnterします。

エラーメッセージが表示されたら

Your requirements could not be resolved to an installable set of packages.

php.iniでphp_intl.dllを有効にしてみましょう。

extension=php_intl.dll
Cakephp3 RC1 インストール エラー | なごりんぐ IT・プログラム情報掲載サイト

ビルトインウェブサーバーで確認

ミーミナルから作成したディレクトリに移動します。

$ cd test-project

下記コマンドでCakePHPのビルトインサーバーを起動します。

$ bin/cake server

メッセージが表示されるのでわかると思いますが、ブラウザから「http://localhost:8765/」にアクセスすれば下のような画面が表示されるはずです。

サーバーを停止するには「CTRL + C」で終了します。

SQLiteの設定

最初に「config/bootstrap.php」にある「timezone」の設定をしておきましょう。

config/bootstrap.php

date_default_timezone_set('Asia/Tokyo');

次にSQLiteファイルを作成するのですが、ここではルートにdatabaseというディレクトリを作成しそこに保存するこにします。
(もっと適切な場所があるかもしれませんがわかりませんでした。)
「config/app.php」ファイルの「Datasources」の「default」を下記のように変更します。

config/app.php

'default' => [
    'className' => 'Cake\Database\Connection',
    'driver' => 'Cake\Database\Driver\Sqlite',
    'persistent' => false,
    'username' => '',
    'password' => '',
    'database' => ROOT . DS . 'database' . DS . 'product.sqlite',
    'encoding' => 'utf8',
    'cacheMetadata' => true,
],

試しにマイグレーションを実行してテーブルを作成してみます。
bakeでマイグレーションファイルを作成、最後の引数はテーブル名なので変更してください。

$ bin/cake bake migration Tasks

「config/Migrations」の中に「日付_tasks,php」というファイルが作成されているはずです。
下記のように変更します。

public function change()
{
    $table = $this->table('tasks');
    $table
        ->addColumn('title', 'string')
        ->addColumn('created', 'datetime')
        ->create();
}

最後にmigrateの実行

$ bin/cake migrations migrate

これで「database」ディレクトリに「product.sqlite」が作成されました。テーブルも作成されています。

以上で簡易的な開発環境の構築は終わりです。
とりあえずPHPさえ入っていればそれほど面倒なく始められますね。

クイックスタートガイド — CakePHP Cookbook 3.x ドキュメント
Migrations — CakePHP Cookbook 3.x ドキュメント

LEAVE A REPLY

コードを書く場合は<pre>で囲んでください。