ラスタ

ラスタ

(0 件のコメント, 47 件の投稿)

猪野浩史。有限会社ラスタファクトリ代表取締役。
コーディングから会社経営まで、何でもやります。
1980年代、Z80のハンドアセンブルに始まり、その後C、C++、VB、Java、PHP、C#などを遍歴。C以前はTinyPASCAL、GAME、TL/1、FORM、FORTHなんてのも使いました(謎?)。
そんなわけで、TK-80の頃からいろいろと弄り回して現在に至っています。
お仕事は、黎明期のPCゲームからコンシューマーゲームを経て電機メーカーでファームやドライバやユーティリティーを書き、現在はWEBでスマホでソーシャルな感じの路線です。
詳しくはこちらをご覧ください。

ラスタ による投稿

データベースを使う その3 ORMモデル生成

0

oilコマンドでORM(Object Relation Mapper)モデルのコードを自動生成してみます。

ORMはCRUD(Create、Retrieve、Update、DeleteといったSQL処理)だけでなく、データベーステーブルをオブジェクトにマップして、テーブル間のリレーションまでも面倒を見てくれる非常に強力なシステムです。

 

ここでは、varchar[32]のnameカラムを持つuserテーブルを生成します(テーブルの命名には少し注意が必要です)。

$ oil g model user name:varchar[32]

上記のコマンドを実行すると、fuel/app/classes/model/user.phpファイルが生成されます。

oilコマンドは$ oil createで作成したディレクトリで実行することに注意してください。

idはoilによって自動的に付加されます。

 

fuel/migrationsディレクトリにはusersテーブルをcreateする001_create_users.phpが生成されます。

 

モデルとマイグレーションを生成したら、データベースに反映させましょう。

$ oil r migrateを実行すると、データベースにテーブルが作成されます。

 

テーブルにはcreate_atとupdate_atの2つのフィールドが自動で付加されます。

oilコマンドのオプションでこれらのタイムスタンプを省略したりフィールド名を変更することができます。

FuelPHP tips データベースのcreated_at、updated_atが不要、または変更したい

0

マイグレーションで生成されるデータベースにはcreated_atフィールドとupdated_atフィールドが付加されます。これらが不要な場合は、–no-timestampオプションを設定します。
$ oil g model テーブル名 [フィールド1 [フィールド2] ...] --no-timestamp

–no-timestampオプションが設定されると、モデルのコードに$_observersが生成されません。

また、created_atやupdated_atのフィールド名を変更したい場合は、オプションで--created-at=フィールド名--updated-at=フィールド名を設定します。

FuelPHP tips マイグレーションしたテーブル名がなんか変

0

マイグレーションで作成されたテーブル名は自動的に’s’や’es’が付加されて複数形になります。このため、生成されたテーブルが意図しないテーブル名になってしまうことがあります。

 

また、mysqlではテーブル名に’_’を使用できますが、FuelPHPは’_’をディレクトリ区切りと解釈するので、<code>$ oil r migrate</code>が失敗します(PDOドライバではダメでした。mysqliドライバでは大丈夫なようです)。

そのうえ、テーブル名を’user_account’などとした場合、fuel/app/classes/model/userディレクトリにaccount.phpが生成され、クラス名がModel_Accountとなってしまいます。
テーブル名の命名には、末尾が’s’で終わらないようにする、’_’を使わない、などの注意が必要です。

oil エラー”This is not a valid Fuel installation so Oil is a bit lost.”

0

$ curl get.fuelphp.com/oil | shでFuelPHPを自動インストールして、その後oilコマンドを実行しようとすると、

This is not a valid Fuel installation so Oil is a bit lost.

とエラーを吐いて実行できないことがあります。

/usr/bin/oilをcatしてみると、./oilが存在するとき$ php oilを実行し、./oilが無く且つcreate以外なら常に上記のエラーを表示して終了するようになっています。

つまり、/usr/bin/oilは、

  • $ php oilとやらずに$ oilで実行できるようにするラッパ
  • これ自体はcreateしかできない

よく考えれば判ることなんですが、自動インストールとは$ oil createを実行することであり、/usr/bin/oilはインストーラのインストーラみたいな物なんですね。

ということで、まずはとにかく$ oil create dirを実行して、その後oilコマンドを実行するときはcreateしたディレクトリで行いましょう。

データベースを使う その1 設定

0

FuelPHPのデータベースのマイグレーションやORM(オブジェクト連携モデル)機能を使うには、データベース設定ファイルの編集が必要です。

設定ファイルは、共通の設定を実行環境ごとの設定で部分的に上書きする形式になっています。

ここでは、PDOドライバを使う設定の例を示します。

 

共通の設定はfuel/app/config/db.phpに記述します。

 

接続の詳細を実行環境ごとのファイルに記述することで、コードを書き換えることなく開発用と公開用のデータベースサーバを切り替えて使用することができます。 開発用の設定ファイルはfuel/app/config/development/db.php、公開用の設定ファイルはfuel/app/config/production/db.phpです。

開発用と公開用のほか、テスト用、ステージング用の環境を使うことができます。
設定ファイルはそれぞれfuel/app/config/test/db.phpfuel/app/config/staging/db.phpです。

 

データベースのモデルではORMパッケージを使うので、fuel/app/config/config.phpのalways_loadにORMの読み込みを追加します。

 

追補 mysqliドライバを使う例

 

UbuntuでのVMware Workstation再設定

0

カーネルアップデートなどの後、VMware関連モジュールのリビルドを行うコマンド。

Ubuntu12.04.1 VMware8.0.4

インストール

0

最近人気という噂のPHPフレームワーク、FuelPHPを使ってみます。
日本語のドキュメントはこちらで閲覧できます。gitでざっくり落とすならこちら

インストールは、自動または手動を選択できますが、ここでは自動インストールを行います。

まず最初にFuelPHPの様々な自動生成機能を提供してくれるoilコマンドをインストールします。

oilコマンドをインストールしたら、HTMLのドキュメントルートに移動し、oilコマンドでプロジェクトリソースを生成します。

これでインストールは完了です。
ブラウザでmysight/publicを開くとウェルカムページが表示されます。

mysight下のfuelphpをEclipse PDTにプロジェクトとして取り込めば開発を始めることができます。
2013年1月8日現在、FuelPHPのEclipseプラグインはまだ無いようです。

FuelPHPを使ってみた過程を書いていきます。
連載にあたっては、達人出版会の「はじめてのフレームワークとしてのFuelPHP」を参考にしました。

ラスタ のRSSフィード
ページのトップへ