インストール
Composerのインストール
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
chmod a+x /usr/local/bin/composer
Symfonyのインストール
curl -LsS http://symfony.com/installer > ~/bin/symfony.phar
sudo mv symfony.phar /usr/local/bin/symfony
chmod a+x /usr/local/bin/symphony
プロジェクトの作成と初期設定
symfony new myproject
cd myproject
php app/console generate:bundle --namespace=MyProjectBundle --format=yml
DBの設定と作成
DB名の指定
今回はmyproject
というDB名に変更します。
- vi app/config/parameters.yml
app/config/parameters.yml
parameters:
database_name: myproject
DB作成
php app/console doctrine:database:create
テーブルの作成
今回はDoctrineMigrationsBundleを使用してマイグレーションファイルを作成しテーブルの変更を管理します。
DoctrineMigrationsBundleのインストールと設定
DoctrineMigrationsBundleのインストール
- vi composer.json
- 以下を追記
composer.json
{
require: {
・・・
"doctrine/migrations": "1.0.*@dev",
"doctrine/doctrine-migrations-bundle": "2.1.*@dev",
・・・
}
}
- install
composer update
設定
- vi app/AppKernel.php
app/AppKernel.php
public function registerBundles()
{
$bundles = array(
//...
new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(),
//...
);
}
-
app/console
を実行してdoctrine:migrations:diff
などのものがあれば成功
Migrationの初期化
php app/console doctrine:migrations:status
Migrationファイルの作成
app/console doctrine:migrations:generate
- 生成されたmigrationファイル(app/DoctrineMigrations/Version*.php)に以下を追記
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
// this up() migration is auto-generated, please modify it to your needs
$sql = <<<SQL
CREATE TABLE `hoge` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
SQL;
$this->addSql($sql);
}
Migrationの実行(テーブル作成)
php app/console doctrine:migrations:migrate
これでmyproject
データベース内にhoge
というテーブルが作成されました。
Entityの作成
php app/console doctrine:mapping:import --force MyProjectBundle yml
php app/console doctrine:generate:entities MyProjectBundle
ControllerとViewの作成
php app/console doctrine:generate:crud --entity=MyProjectBundle:Hoge
これで
php app/console server:run
して
http://localhost:8000/hoge/
へアクセスすれば完了です!