Home > PHP > 長い二日目

長い二日目

3月 8th, 2006
Goto comments Leave a comment

symfony advent calendar day two setting up a data modelの情報を元にbookmarkの作成。

「bookmark」というプロジェクトに「frontend」というアプリケーションを作る。

C:\>mkdir C:\workspase\bookmark
C:\>cd C:\workspase\bookmark
C:\workspase\bookmark>symfony init-project bookmark
C:\workspase\bookmark>symfony init-app frontend

アクセスできるようにhttpd.confを修正。
mod_rewriteのコメントはずして、面倒なのでVirtualHost化。
「localhost」でアクセスしたら「C:/www」を、「bookmark」でアクセスしたら「C:/workspace/bookmark/web」を表示するように。

NameVirtualHost *
<VirtualHost *>
    DocumentRoot    "C:/www"
    ServerName      localhost
    Alias /eclipse  "C:/workspace"
</VirtualHost>
<VirtualHost *>
    DocumentRoot    "C:/workspace/bookmark/web"
    ServerName      bookmark
    DirectoryIndex  index.php
    Alias /sf       "C:/php5/PEAR/data/symfony/web/sf"
    <Directory      "C:/workspace/bookmark/web">
        AllowOverride All
    </Directory>
</VirtualHost>

ローカルの名前解決するhostsファイル書き換え。
Windows2000なら「C:\WINNT\system32\drivers\etc\hosts」、WindowsXPなら「C:\Windows\system32\drivers\etc\hosts」
デフォルトではlocalhostの設定しかされてないはず。
他の設定もあるなら山田ウイルス乙。

127.0.0.1       localhost
127.0.0.1       bookmark

ブラウザで「http://bookmark/」へアクセスして「Congratulations!」がみれればOK。
「http://symfony/frontend_dev.php/」でjavascriptが走ってればエイリアスの指定も問題なし。

SymfonyはPHP5から利用できるようになったO/RマッパーPropelを利用するので定義ファイルconfig/schema.xmlの作成。

<?xml version="1.0" encoding="UTF-8"?>
  <database name="propel" defaultIdMethod="native" noxsd="true">
    <table name="bookmark_items" phpName="Items">
      <column name="id" type="integer" required="true" primaryKey="true" autoincrement="true" />
      <column name="url" type="varchar" size="255" />
      <column name="title" type="varchar" size="255" />
    </table>
  </database>

Modelの生成。

C:\workspase\bookmark>symfony propel-build-model

データベース接続の設定。
config/databases.yml

all:
  propel:
    class:          sfPropelDatabase
    param:
      phptype:  mysql
      host:     localhost
      database: bookmark
      username: youruser
      password: yourpasswd

SQL文の作成。

C:\workspase\bookmark>symfony propel-build-sql

data/sql/schema.sqlというsqlファイルが作成される。

DBの作成。

C:\workspase\bookmark>mysql -u youruser -p
mysql> CREATE DATABASE bookmark DEFAULT CHARACTER SET utf8;
mysql> \q
C:\workspase\bookmark>mysql -u youruser -p bookmark < data\sql\schema.sql

CRUDのscaffold(足場)の作成。

C:\workspase\bookmark>symfony propel-generate-crud frontend items Items

キャッシュの削除。

C:\workspace\bookmark>symfony cc frontend config

「http://bookmark/items」にアクセス。
とても10分ではできないけど、PHPスクリプト書かずにそれっぽいの完成。

cockok PHP

  1. No comments yet.
  1. No trackbacks yet.