Laravelのルーティング
ルーティング
Laravelのルーティングはすごくシンプルで app/Http/routes.php にリクエストメソッド、URI、無名関数の組み合わせで実現できます。
例えばこんな URL でページを表示してみたいと思います。
http://<ホスト名>:8000/test
Route::get('test', function () { return 'Hello World'; });
ページにアクセスすると Hello World が表示されてると思います。
公式サイトを見ると get, post, put, delete はもちろん patch, options までサポートされてるみたいです。
https://laravel.com/docs/5.2/routing
また無名関数を使わない方法をとることもできます。
まずはコントローラーを用意します。
// app/Http/Controllers/Test.php <?php namespace App\Http\Controllers; class Test extends Controller { /** * Create a new controller instance. * * @return void */ public function __construct() { } public function index() { return 'Hello World'; } }
これを使うにはクラス名@メソッドで指定できます。
Route::get('test', 'Test@index');
便利ですね!^^
Windows8.1でNodeJSを使うときの小技
Git for Windows
npm や git コマンドを扱いやすくするには Git Bash が便利です。
https://git-for-windows.github.io/
Laravelを使ってみる
Laravelとは
MVCのWebアプリケーション開発用の無料・オープンソースのPHPで書かれたWebアプリケーションフレームワークです。
同じようなものにfuelphpやsymfonyがあります。
https://laravel.com/
こちらは Google Trends の結果ですが Laravel 結構人気出てきてるようですね。
https://www.google.co.jp/trends/explore?hl=ja#q=laravel,+CakePHP,+zend+framework,+Symfony,+codeigniter&cmpt=q&tz=Etc/GMT-9&tz=Etc/GMT-9
コンポーネント指向
最近のフレームワークの傾向として、すでにあるコードを利用してフレームワークを構成していくコンポーネント指向が増えてるみたいですね
例えば FastRoute, Bootstrap, phpunit などがそれにあたると思います。
インストール
インストールの方法は LaravelInstaller を使うか Composer を使う方法があるようですが、今回は Composer 経由でインストールしたいと思います。
作業ディレクトリに移って以下のコマンドを実行します。
$ composer create-project --prefer-dist laravel/laravel <projectname>
次回はルーティングを扱ってみたいと思います。
Composerを使う
Composer とは
Composer は PHP パッケージの管理ツールです。
https://getcomposer.org/
目的のパッケージだけでなく、依存関係を調べて必要なパッケージをインストールもしてくれます。
Packagist
Composer でインストール可能な公開パッケージは Packagist で検索できます
https://packagist.org/
インストール
Mac の場合
$ curl -sS https://getcomposer.org/installer | php
このままだと毎回 php composer.phar と打たないといけないので、バイナリファイルをパスの通った場所に移します。
$ mv composer.phar /usr/local/bin/composer
composer.json
Composerはcomposer.jsonファイルを元にパッケージをインストールしvendorディレクトリ以下に配置します。
Lumen を例にとるとこんな感じです。
{ // パッケージ名 "name": "laravel/lumen", // パッケージの説明 "description": "The Laravel Lumen Framework.", // キーワード "keywords": ["framework", "laravel", "lumen"], // ライセンス "license": "MIT", // パッケージのタイプ。library, project, meta-package などがある。 // library: ファイルをコピーして使うようなタイプの場合 // project: ファイル単体というよりもアプリとして機能を提供するようなタイプの場合 // meta-package: requirementsが記載されただけでファイルおよびファイルの変更がないようなもの "type": "project", // composer update か install で インストールするパッケージとバージョンです。 "require": { "php": ">=5.5.9", "laravel/lumen-framework": "5.2.*", "vlucas/phpdotenv": "~2.2" }, // require と違うのは composer update か install で --no-dev オプションを付けるとインストールされないこと "require-dev": { "fzaninotto/faker": "~1.4", "phpunit/phpunit": "~4.0" }, // psr-4 のオートロードをサポートしてます。 "autoload": { "psr-4": { "App\\": "app/" } }, // "autoload-dev": { "classmap": [ "tests/", "database/" ] } }
参考にさせていただいたサイト
Dropbox上にGitリポジトリを作る
開発したソースコードは Github に置いていたのですが、Dropboxに置くと無料になるしどこでもソースを参照できるので試しにやってみました。
こちらのサイトが参考になります
http://m.designbits.jp/13061220/
まずは使っているパソコンに Dropbox をインストールします。
https://www.dropbox.com/ja/
Dropbox をインストールしたら適当に git などといった名前のディレクトリを作り、さらにそこに移動します。
$ cd ~/Dropbox/git
次に空の Git リポジトリを作成します
$ git init --bare test.git
最後に作業ディレクトリに移動して、いま作ったリポジトリをクローンします。
$ git clone ~/Dropbox/git/test.git
PHPビルトインウェブサーバー
PHP5.4.0からビルトインウェブサーバーという便利な機能が使えるようになりました。
$ php -S localhost:8000
任意のインターフェイスからアクセスできるようにするには
$ php -S 0.0.0.0:8000
しかしこの機能、URIにドットが含まれているとうまく動作しないようです・・・。
例えばこんな感じ
http://<ホスト名>/shop/aaa.bbb/items/ccc.ddd
詳しくはこちら
http://php.net/manual/ja/features.commandline.webserver.php