【FuelPHP】oilコマンドを利用したOrmモデルの自動生成
説明
oilコマンドを利用して、Ormモデル、マイグレーションを作成します。
また、テーブルの作成もoilコマンドで自動でします。
引用
oilコマンドでテーブルの作成するメリットは、データベースの構造もバージョン管理できるようになること
1.oilコマンドのインストール
oilコマンドを利用するためには、下記のコマンドでインストールをします。
$ curl get.fuelphp.com/oil | sh
詳しくはドキュメント
インストール方法 - インストール - FuelPHP ドキュメント
2.モデルの生成
コマンドラインでFuelPHPをインストールしたディレクトリに移動して、次のコマンドを入力します。
$ php oil g model user id:int name:varchar[50]
下記のようにコマンドの応答を見ると、
1行目は、APPPATH/classes/model/直下にsudentというモデルが作成されています。
2行目は、APPPATH/migrations/というディレクトリ以下にマイグレーションが作成されています。
Creating model: /home/apache/sample/fuel/app/classes/model/user.php Creating migration: /home/apache/sample/fuel/app/migrations/001_create_user
マイグレーションはテーブル作成時に、使用します。
Generate - Oil パッケージ - FuelPHP ドキュメント
3.テーブル作成
先ほど作成したマイグレーションを使用して、テーブルを作成します。
次のコマンドを入力します。
$ php oil refine migrate
db.phpで設定されているデータベース上にuserテーブルとmigrationという2つのテーブルが作成されています。
マイグレーションファイルとモデルの中身を確認します。
<?php // マイグレーション namespace Fuel\Migrations; class Create_users { public function up() { \DBUtil::create_table('users', array( 'id' => array('constraint' => 11, 'type' => 'int'), 'name' => array('constraint' => 50, 'type' => 'varchar'), 'created_at' => array('constraint' => 11, 'type' => 'int', 'null' => true), 'updated_at' => array('constraint' => 11, 'type' => 'int', 'null' => true), ), array('id')); } public function down() { \DBUtil::drop_table('users'); } }
<?php // モデル class Model_User extends \Orm\Model { protected static $_properties = array( 'id', 'name', 'created_at', 'updated_at', ); protected static $_observers = array( 'Orm\Observer_CreatedAt' => array( 'events' => array('before_insert'), 'mysql_timestamp' => false, ), 'Orm\Observer_UpdatedAt' => array( 'events' => array('before_update'), 'mysql_timestamp' => false, ), ); protected static $_table_name = --crud<'users'; }
【FuelPHP】DBの結果を配列で取得
例えば下記のようにクエリを実行します。
結果はオブジェクトを生成します。
<?php // オブジェクトを生成 $result = DB::select() ->from('users') ->where('id', 1) ->execute();
結果を配列で返して欲しい場合は、下記のようにexecute()の後にas_array()をくっつければ、
配列を生成します。
<?php // 配列を生成 $result = DB::select() ->from('users') ->where('id', 1) ->execute() ->as_array();
Vagrantで作成したCentOSにAnsibleをインストール
条件として
先にVirtualBoxtとVagrantのインストールを済ましておいて下さい。
まだの場合は、下記の記事を参考にしてみて下さい。
wakuwakupush.hatenablog.com
1.CentOSのVirtualBoxへの登録
VirtualBox用boxファイルを
varant box add {適当な名前} {boxファイルURL}
で取得し、VirtualBoxに登録します。
今回はCentOS65を使用します。
※VirtualBox、Vagrantのインストール済みとして進めます。
vagrant box add centos_ansible https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box
2.Vagrantファイルの作成
次に、適当なところに作業ディレクトリを作成して、その中にVagrantファイルを作成します。
// vagrantfileを作成 $ vagrant init centos_ansible // vagrantfileが存在するか確認 $ dir
3.Vagrantファイルを編集
vagrantfile // VMのIPアドレスを設定 コメントアウト 29行目 config.vm.network "private_network", ip: "192.168.33.10" // Vagrantfileが配置されているディレクトリの、provision.sh(シェル)を実行 67行目 config.vm.provision :shell, :path => "provision.sh"
次に実行するprovision.shを、Vagrantfileと同じディレクトリに作成します。
Ansibleのインストールを記述しましょう。
provision.sh // ansibleインストール追記 sudo yum install -y ansible
最初にvagrant upを行った際に、provision.shが実行されてAnsibleがインストールされるはずです。
4.Ansibleがインストールされたか確認
下記のコマンドで仮想マシンを立ち上げます。
※Vagrantfileのディレクトりに移動してから行ってください。
コマンドを実行すると仮想マシンが立ち上がり、シェルによってAnsibleのインストールなどが始まります。
// 仮想マシンを起動 $ vagrant up
仮想マシンが立ち上がったら、ssh接続をします。
※Teratermなど、他のクライアントソフトで接続する場合は、
Vagrantfileのconfig.vm.networkで設定したIPアドレスで接続できます。
ssh接続したら、下記コマンドでAnsibleがインストールされたか確認します。
$ ansible --version
Ansibleのバージョンが表示されればOKです。
もし表示されなければ、provision.shが存在するディレクトリ上で下記コマンドを実行して下さい。
$ vagrant provision
再度、Ansibleがインストールされたか確認します。
Ansibleのバージョンが表示されればOKです。
以上になります。お疲れ様でした。
Vagrantで作成したローカル環境にNginxをインストール
wakuwakupush.hatenablog.com
※環境構築がまだの場合は、先に上記の記事から環境を構築してみて下さい。
1-1.Nginxのインストール
rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
Nginxをyumでインストール
sudo yum install nginx
バージョン確認
nginx -v
1-2.Nginxの起動
バージョン確認ができたら、以下のコマンドで起動をします。
sudo service nginx start
Webブラウザで確認します。
[http://192.168.33.10/]
※「Welcome to nginx on EPEL!」と表示されます。
VirtualBox+VagrantでCentOS環境構築
VirtualBoxインストール
OSに合ったVirtualBoxをダウンロードしてインストール
Downloads – Oracle VM VirtualBox
Vagrantインストール
OSに合ったVagrantをダウンロードしてインストール
www.vagrantup.com
1-1. CentOSのVirtualBoxへの登録
VirtualBox、Vagrantのインストールが完了したら、VirtualBox用boxファイルを
varant box add {適当な名前} {boxファイルURL}
で取得し、VirtualBoxに登録します。
vagrant box add CentOS65 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box
1-2.Vagrantファイルの作成
適当にディレクトリを作成して、その中にVagrantファイルを作成します。
// 新規ディレクトリを作成 mkdir centos // 作成したディレクトリに移動 cd centos // Vagrantファイルを作成 vagrant init CentOS65 // Vagrantファイルが存在するか確認 dir
1-3.Vagrantファイルを編集
Vagrantfile # VMのIPアドレスを設定 コメントアウト config.vm.network "private_network", ip: "192.168.33.10" # GUIモードの設定をONにする場合は設定(不要ならコメントアウトのままで問題なし) config.vm.provider "virtualbox" do |vb| # Display the VirtualBox GUI when booting the machine vb.gui = true end
編集が完了したら、次はVirtualMachine(以下、VM)を起動します。
Vagrantコマンド一覧
// 起動 vagrant up // 再起動 vagrant reload // 現状確認 vagrant status // 一時停止 vagrant suspend // suspendからの復帰 vagrant resume // シャットダウン vagrant halt // 消去 vagrant destroy