Laravel4.3 を覗いてみた

Posted: 2014-09-02 23:11 |  laravel 

LaraconEUも終わり、次期バージョンのリリースが待ち遠しいLaravelですが、
セマンティックバージョン採用で次期バージョンがLaravel5になるかもしれません
今の所"Youやっちゃいなよ"的な感じでしょうか
これからの動向にワクワクしてる毎日ですが、
現通称Laravel4.3はご存知の方も多いと思いますが(以前にも書きました)、
まずディレクトリ構造が大きく変わります。
現在はまだ確定ではないと思いますが、全く別物になると思った方が良いでしょう

ディレクトリ


testsがアプリケーションの外に置かれて個人的にはすっきりしました
他言語対応等のlang, テンプレートのviewはresourcesの中に移動した様です
appの中にあったロジックとあまり関係ないものは外に出された様です

app内部はこのように設置されてます
依存などは今まで通りサービスプロバイダーで記述しますが
機能毎にそれぞれ用意されました。
構造化しよう!と云わんばかりに綺麗になりました

composer.json

コントローラー追加したけど動かない!やクラスどうやって使うの・・
という質問がよく見られましたが、
psr-4に変更されたので、dump-autoloadは要らなくなりました

ただし、config/compiled.phpにサービスプロバイダーが含まれているので、
 

$ php artisan optimize --force

を実行するか、compiled.phpから削除すると良いでしょう
AppServiceProvider.phpが最初に読み込まれるので、他のサービスプロバイダーからバインディングしたものを使う場合は
意識せずにそのままいつも通りバインドした名前を指定するだけです

メソッドでインジェクション

コンストラクタインジェクションの他に、コントローラー限定ですが
メソッドでインジェクションが出来る様になりました バインドすればこの通り
もちろん今までのコンストラクタインジェクションもOKです
namespace App\Http\Controllers;

use Illuminate\Routing\Controller;
use App\Repositories\SampleRepositoryInterface;

class HomeController extends Controller
{

    public function index(SampleRepositoryInterface $sample, $id = null)
    {
        return $sample->get();
    }

}

だいぶ脱MVCっぽくなってきたんじゃないでしょうか
共通で利用するものをコンストラクタで指定して
あとはメソッドに、とかいいかもしれないですね
また文句付けられるんでしょうけどw

Route:cache

ルーティングをキャッシュ出来る様になりました
少しパフォーマンスを上げれるか・・・
やってみたけどあまりかわりませんでした
apc使って併用するとかちょっと改造してみようかなと思います
ちなみにクロージャーを使った指定が含まれる場合はキャッシュできないようです
キャッシュには
$ php artisan route:cache
削除は
$ php artisan route:clear
いつもの一覧取得は
$ php artisan route:list
です、簡単

Event:cache

イベントもキャッシュできる様になりました
アノテーションを使ってキャッシュします
ちょっとあれですが、わかりやすく書くとこうなります
class EventSample
{

    /**
     * @hearshello
     * @return string
     */
    public function get()
    {
        return 'Hello 4.3!';
    }

} 
@hearsがプレフィックスとして、その後のhelloが使われて吐き出されるのは
 
$events->listen('hello', 'App\Repositories\EventSample@get');
こういう具合です。
色々便利なものが結構増えてますので、人柱的に使ってみるのも良いでしょう!
まだ細かい所まで見れてないですがこんなところです

 

about ytake

執筆に参加しています


Laravel お役立ち情報

share



このエントリーをはてなブックマークに追加

Categories

laravel 45

DTM 0

music 0

PHP全般 31

0

JAPAN 1

WORLD 1

javascript 4

RDBMS 1

NoSQL 1

NewSQL 1

Recent Posts

Ad

comments powered by Disqus

GitHub

Social Links

Author


クリエイティブ・コモンズ・ライセンス
Yuuki Takezawa 作『Ytake Blog』はクリエイティブ・コモンズ 表示 - 非営利 4.0 国際 ライセンス で提供されています。

© ytake/comnect All Rights Reserved. 2014