Laravelのルーティング

前回までの内容はこちら

http://yonishiy.hatenablog.com/entry/2016/04/17/140451

ルーティング

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/

NodeのPATHを通す

個人的にはこの PATH を通すという作業が苦手です・・・
今回も小一時間悩んだのでポイントをメモしました。
結論からいうとこれまでの Unix 系の環境変数の設定方法と Windows でのそれが異なっていたために悩んでいたことがわかりました。
Unix 系の環境変数の区切り文字はコロンなんですが Windows はどうやらセミコロンらしいです。
GitBash からだとこのような環境変数を設定するとうまくいきました

# ~/.bash_profile

export NODE_PATH=$APPDATA\\npm\\node_modules

Laravelを使ってみる

Laravelとは

MVCのWebアプリケーション開発用の無料・オープンソースPHPで書かれたWebアプリケーションフレームワークです。
同じようなものにfuelphpsymfonyがあります。
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>

表示確認

PHP Built-in サーバーを起動して表示を確認します

$ php -S 0.0.0.0:8000 public/index.php

// http://<ホスト名>:8000

次回はルーティングを扱ってみたいと思います。

http://yonishiy.hatenablog.com/entry/2016/05/06/204725

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/"
        ]
    }
}

参考にさせていただいたサイト

http://qiita.com/notona/items/c5a087d8dd446d315e6e

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

MacBookをサーバーとして使う

きっかけ

使わなくなったMacBook無線LAN、ファイルサーバー、iTunesサーバー、開発機として使うことにしました。

 

参考にさせていただいたサイト

 

インターネット共有をスリープさせない

インターネット共有はスリープするしないを設定できないようで、MacBookを閉じると無線LANが使えなくなってしまいました。

しかし電源をさしておくと、インターネット共有はスリープしないようです。

これでMacBookを閉じても安心してインターネット接続させることができました^^