Monthly Archives: 12月 2016

Laravel Homesteadをインストールして使ってみる

By | 2016/12/08 7:28 PM

Laravelは、PHPのWebアプリケーションフレームワークです。
利便性の高さから、世界で最も利用(日本では2位)されているPHPフレームワークです。
今回は、Laravelを使った開発に必要な環境(DB、Webサーバー、PHPなど)を揃えてくれるHomesteadについて説明します。

事前準備

Homesteadの使用にあたり、以下のソフトウェアをインストールする必要があります。
インストール手順については、基本的にインストーラーに従って進めれば問題ないのでここでは割愛します。

Boxの作成とHomesteadの準備

Homestead Vagrant Boxのインストール

HomesteadのBoxを追加します。

途中でプロバイダー(仮想化ツールのフロントエンドとなるソフトウェア)を聞かれます。
ここではvirtualboxを使用しているので「2」を選択します。

Homesteadのインストール

gitリポジトリをcloneし、Homesteadをインストールします。

HomesteadリポジトリをCloneできたら、「Homestead.yaml」設定ファイルを生成するために、init.batを実行します。

Homestead設定

init.batの実行により作成された~/.homestead/Homestead.yamlを編集します。

参考:デフォルトのHomestead.yaml設定値

プロバイダの設定

プロバイダとしてvirtualbox以外を使用している場合は、以下の設定でプロバイダを変更します。

鍵の設定

HomesteadにSSHでアクセスする際の鍵情報を定義します。

同期用フォルダの設定

ローカルとvagrant上でファイルをやりとりするための同期用フォルダを設定します。
mapがローカル、toがVagrant上のパスになります。

公開フォルダの設定

URLと公開フォルダのマッピングを行います。
下記の設定の場合、http://homestead.app にアクセスすると/home/vagrant/Code/laravel/public配下がdocumentrootになります。

hostsファイルの設定

ブラウザでhttp://homestead.app にアクセスした際にページが閲覧できるよう、hostsファイルの設定を行います。
Windows環境ではhostsファイルはC:\Windows\System32\drivers\etc\hostsに存在します。
hostsファイルに以下の行を追記します。
ここで記述するIPアドレス、ホスト名はHomestead.yamlで設定している値と合わせてください。

vagrant up

ここまでの作業で、Homesteadの環境設定が出来上がったので、実際にサーバーを立ち上げてみます。

ステータスが「running」となり、サーバーが立ち上がっていることが確認できました。

仮想環境側の設定

仮想環境が立ち上がったので、ターミナルソフトやSSHコマンドで仮想環境側にアクセスします。
ユーザー/パスワードはvagrant/vagrantでアクセス可能です。

Laravel Projectの作成

以下のコマンドでLaravelプロジェクトを作成します。

動作確認

http://homestead.app にアクセスし、ページが表示されることを確認します。

 

配列を配列で上書きする関数

By | 2016/12/02 4:56 PM

配列を配列で置き換えたい場合というのがあります。

例えば、次のような、ある人の体重(weight)、身長(height)のデータを表す配列があったとします。

そしてこの人は、正月に帰省した際、おいしいものを食べすぎて体重が増加してしまった、とします。
年末など、親戚がたくさん集まるようなイベントがあると、ついつい食べ過ぎて危険ではありますね。
さて、この場合の更新データは、次のような配列となります。

正月前の体重、身長のデータを正月後の値で更新したい場合、次のようなコードになります。

foreachで元データの配列をループさせながら、内側で更新データの配列をループさせ、その両者のキーが同じデータがあれば、元データが上書きされる、という処理ですね。
このコードもPHPの5.3.0以降の場合は、次のように簡潔に記述することが可能になります。

この関数、array_replaceの定義は以下のようになります。

実行することで、第一引数の配列が、第二引数以降の配列によって上書きされた配列を返します。
第二引数以降というのは、第三引数、第四引数…も指定可能ということで、次のようなことも可能です。
正月後、体重が増えてしまいガッカリしていたものの、さらにその後の健康診断に行ったら身長が175cmになっていた、というケース。

実行結果は次のようになります。

第二引数以降の、第一引数への上書きの優先度については、上記の例でもわかるように、後に指定した引数が優先される仕組みになっています。
上記の例では、第二引数よりも第三引数が優先されるということです。

今回は、配列を配列で上書きする関数、array_replaceを紹介しました。いつもforeachで行っている処理を簡潔に記述することが可能になりますので、ぜひ使ってみてください。