Laravel4.1、依存パッケージの紹介

タグ: Laravel4  

これは、Laravel Advent Calendar 2013 の7日目の記事です。

Laravel依存症の皆様、こんにちは。

前回のペァジェネイションの交換に引き続き、本日も私が担当させていただきます。お口汚しを。

Laravel4.1が利用しているパッケージを紹介いたします。各パッケージについての知識を持たずとも、便利に使用できるのが、フレームワークの良い所でしょう。特にLaravelは良く練られています。

しかし、それが故に、ライブラリーの機能を使用すれば苦労がいらない部分を実装して苦労することもありえる話です。そのため、一応依存しているライブラリーを「いざ」という時に調べてみると、手間が省ける部分もあると思います。

Boris

REPLパッケージです。tinkerコマンドの追加のために入れられたものだと思います。Laravelのリポにフォークしてあるため、改造してあるかもしれません。

Class Preloder

Laravelのクラスファイルを一つにまとめる(コンパイル)を行なっている、ライブラリーです。4.1になってから、私の環境でコンパイルする、しないでは余り差が出なくなりました。ルーティング周りのパッケージ変更が効いているようです。APCなどを使用する場合の影響については調査していません。確かに、めちゃくちゃ早くなりますからね。

Whoops

エラー・例外表示パッケージです。Laravelのド派手なエラー表示ページは、このパッケージにより表示されています。オリジナルはブルーですが、Laravelらしくオレンジベースになっています。

password_compat

PHP 5.5より利用できるpassword機能を、PHP 5.3.7以上の環境で先取りしてしまうパッケージです。

Super Closure

クロージャーのシリアライズを行えるようにするパッケージです。このおかげでキューの機能が実現できています。

Monolog

有名なログパッケージです。

Carbon

PHPの日付時間を拡張するパッケージです。とても便利です。開いている日があれば、アドベントカレンダーでさわりを紹介します。

PHP Parser

PHPのコードをツリーへパースするパッケージです。

Patchwork UTF-8

PHPのmbstringに置き換えて使用されているパッケージです。mbstringiconvintlpcreで-uオプション無しに、良きに計らってくれているはずです。文字列操作系もUTF-8をそのままで上手く扱ってくれています(たぶん)。現在はUTF-8ベースで開発される時代ですから、余計なことを考えないで済むという事ですね。(逆に言えば、ASCIIベースで取り扱つかいたい情報がある時に、予期しない動作を行うことがあるも知れません。PHPで設定された文字コード類の設定が反映されないかも知れません。私は最近こうした文字ベースに関わることを深く考えるようなプログラミングをしていませんので、影響を詳しく調べていません。)

PHPSecLib

PHPのセキュリティで保護された通信ライブラリです。FuelPHPでも利用されています。ドキュメントを参照するとよいでしょう。但し、Laravel4.1の場合SSHファサードが用意されています。

Predis

PHP用のRedisクライアントパッケージです。

PSR/log

PSR-3で定義されているログのインターフェイスがメインです。多分、Monologが依存しているパッケ時です。

Stack/Builder

4.1になり、Symfony\Component\HttpKernelがこのパッケージ置き換えられました。容量・スピードともに改善されました。

swiftmailer

Laraveのメールクライアントはこの有名パッケージです。既にISO-2202-JPでの送信方法を紹介した記事も当サイトで書いています。

Symfony

いわずもかな、Symfonyライブラリーを屋台骨に使用しています。(と書くと必ず、Symfonyは遅いという考えを持った人が、ではLaravelも遅いなという話をWebに流されるのが、いつものことです。しかし、一般にフルスタックで重いと考えられているのはSymfony Standard Editionのことです。Symfonyの各ライブラリー(パッケージ)のことではありません。そして、Symfony Standard Editionも調節を正しく行えば、スピードは出せるようです。)

Symfonyの各パッケージの詳細は省略します。Symfonyユーザーの手で、翻訳された情報にアクセス可能です。

ざっと紹介しました。けれど、自分で調べると時間がかかります。:D

さて、明日は再度、Laravelエリート・エヴァンゲリオン・エバンジェリスト・ジェジェジェ・ザ・おもてなしlocaldiskさんの「誰も書かないなら書くよ(交代OK)」です。タイトルからすると、Laravelのパッケージかオブジェクトの交換性について、いまだ書かれたことのない内容に触れるものと思われます。期待して、お待ちください。