symfonyでmodelを作成する方法
symfonyでモデル作成する場合は、
まず、「プロジェクトフォルダ/config/schema.yml」を修正します。
で定義するデータベーステーブルの構造を
schema.ymlに設定したら以下のコマンドを実行します。
1 |
symfony propel-build-model |
これで
「プロジェクトフォルダ/lib/model」の中にクラスファイルが自動生成されます。
テーブル定義を修正する場合は、「schema.yml」を修正したのち先ほどのコマンドを実行してORMクラスファイル再作成を行います。
ここでひとつ注意があります。
自動生成されるクラスファイルは
- 「プロジェクトフォルダ/lib/model」
- 「プロジェクトフォルダ/lib/model/om」
2つのフォルダに作成されます。
その中で、omフォルダの中にあるクラスファイルは、自動生成する度にテーブル定義にしたがい再作成されるので修正をしてはいけません。
機能追加する場合はmodelフォルダ直下のファイルを修正するようにしてください。
symfonyのアプリケーションの作成方法
symfonyを使ってアプリを作成するときに最初に行うコマンド実行の手順です。
ちなみにこれはsymfony1.0系のアプリケーションの作成方法です。
- まず、プロジェクトを作成します。
1
symfony init-project プロジェクト名
このコマンドを実行を実行したフォルダがsymfonyのプロジェクトフォルダになります。
- 次に、アプリケーションを作成します。
1
symfony init-app アプリ名
このアプリ名でアプリケーションが作成されます。
- 次にアプリにモジュールを追加します。
アプリケーションを追加しただけではモジュールが無い為、何も動作しません。1
symfony init-module アプリ名 モジュール名
これで対象のアプリケーションにモジュールのスケルトンが作成されます。
これで一通りのスケルトンはできたのであとは実装部分を追加していきます。
作ったプロジェクト名がどれくらい影響するのか情報を収集してみました。
以下の部分に自動設定されていました。
1 2 3 4 |
localhost% grep myprj **/** ~/public_html/myprj config/propel.ini:propel.project = myprj config/propel.ini:propel.database.url = mysql://root@localhost/myprj config/properties.ini: name=myprj |
symfonyでのパラメータの取得方法
symfonyでのパラメータの取得方法です。
nameというリクエストパラメータが送信されてきた場合の値の取得方法です。
- Actionでのパラメータの取得方法
1
$this->name = $this->getRequestParameter('name');
- templateでのパラメータの取得方法
1
<?php echo $sf_params->get('name') ?>
これで、フォーム送信やクエリ文字列のパラメータを取得することができます。
CentOSでの自動起動デーモンの設定
CentOSを使ってLAMP環境を構築したら自動起動でApache、MySQLが起動してくれないので設定しました。
まず、
1 |
runlevel |
で、今のランレベルを確認します。
で、ランレベルが判明したら対象のフォルダに移動します。
今回は、ランレベル3の設定です
1 |
cd /etc/rc.d/rc3.d/
|
ここに自動実行されるデーモンの起動スクリプトが格納されています。
「/etc/rc.d/rcランレベル.d」の形でフォルダに格納されていますので異なるランレベルの場合は読み替えてください。
ここに必要な起動スクリプトを格納します。
格納するスクリプトはデーモンの起動スクリプトが格納されている
「/etc/rc.d/init.d」フォルダの中のスクリプトのシンボリックリンクを置くようにします。
で、ファイルの命名規則ですが
- S:スタートアップ時に起動するデーモン
K:シャットダウン時に終了させるデーモン - 優先順位
- デーモン名
で命名します。
例えば「S55sshd」とすると
優先順位55番目でsshdを起動するということになります。
今回は、httpdとmysqldを追加します。
1 2 |
sudo ln -s ../init.d/httpd S60httpd sudo ln -s ../init.d/mysqld S61mysqld |
と、シンボリックリンクを追加します。
これで、rebootしてみると・・・・。
見事、apacheとmysqlが立ち上がった時点で起動していました