PHP 開発者が知っておくべき 24 のクールな PHP ライブラリ (マイクロフレームワーク)
PHP 開発者になるのはエキサイティングな時代です。 Github では、簡単に見つけて使用できる便利なライブラリが毎日大量に配布されています。以下に、私がこれまで出会った中で最もクールなライブラリを 24 個紹介します。あなたのお気に入りの図書館がこのリストに載っていませんか?コメントでシェアしてください!
1. Dispatch? マイクロフレームワーク
Dispatch は小さな PHP フレームワークです。完全な MVC セットアップは提供されませんが、URL ルールとメソッドを定義してアプリケーションをより適切に編成できます。これは、API、単純なサイト、またはプロトタイプに最適です。
[php] view plaincopy
//ライブラリをインクルード
include 'dispatch.php'
//ルートを定義する
get('/greet',function () {/ /レンダリングビュー
render('greet-form');
//後処理
post('/greet', function () {
$name = from($ _POST, 'name');
// いくつかのローカルを渡しながらビューをレンダリングします
render('greet-show', array('name' => $name));
//サイトを提供する
dispatch();
特定のタイプの HTTP リクエストとパスを照合したり、ビューをレンダリングしたり、その他のことを行うことができます。 Dispatch を他のフレームワークと組み合わせると、非常に強力で軽量なプログラムを作成できます。2. Klein ? PHP の超高速ルーティング
Klein は、PHP5.3 以降のバージョンの軽量ルーティング ライブラリです。 Dispatch よりも構文がやや冗長ですが、非常に高速です。以下に例を示します:
[php]
view plaincopy
respond('/[:name]', function ($request) {
echo 'Hello ' . $request->name; } );
HTTP メソッドを指定し、パスとして正規表現を使用するようにカスタマイズすることもできます。
[php]
view plaincopy
respond('GET', '/posts', $callback);
respond('POST', '/posts/create', $callback); ('PUT', '/posts/[i:id]', $callback); respond('DELETE', '/posts/[i:id]', $callback);
//一致複数のリクエストメソッド:
respond(array('POST','GET'), $route, $callback);
//同じ場所でリクエストを処理することもできます
respond('/posts /[create|edit:action] /[i:id] ', function ($request, $response) {
switch ($request->action) {
} // 何かをする
}
} ) ;
これは小規模なプロジェクトには最適ですが、このようなライブラリを大規模なアプリケーションで使用する場合は、コードがすぐに保守不能になる可能性があるため、ルールに従う必要があります。したがって、Laravel や CodeIgniter のような完全に成熟したフレームワークを使用する方がよいでしょう。3. Ham ? キャッシュを備えたルーティング ライブラリ
Ham も軽量のルーティング フレームワークですが、さらに高速な速度を実現するためにキャッシュを使用します。これは、XCache/APC に関連するすべての I/O をキャッシュすることによって行われます。以下に例を示します:
[php] view plaincopy
require '../ham/ham.php';
$app = new Ham('example'); & gt; config_from_file ('settings.php');
$hello = function($app, $name='world') {
return $app->render('hello.html', array (
) 'name' => $name
));
$app->route('/hello/
$app ->run();
このライブラリを使用するには、XCache と APC の少なくとも 1 つがインストールされている必要があります。これは、ほとんどのホスティング プロバイダーが提供するホストでは機能しない可能性があることを意味します。ただし、これらのいずれかがインストールされているホストがある場合、または Web サーバーを制御できる場合は、この最速のフレームワークを試してください。
4. Assetic ? リソース管理
Assetic は、CSS/JS リソースをマージおよび削減するための PHP リソース管理フレームワークです。以下に例を示します。
[php] view plaincopy
use AsseticAssetFileAsset;
use AssetCollection(array(
) new GlobAsset('/path/to/js /*' ),
new FileAsset('/path/to/another.js'),
));
// リソースが出力されると、コードがマージされます
echo $js-> ;dump ();
この方法でリソースを組み合わせると、サイトの速度が向上するため、良いアイデアになります。総ダウンロード量が削減されるだけでなく、多数の不要な HTTP リクエストも削除されます (これら 2 つはページの読み込み時間に最も影響します)5. ImageWorkshop ? レイヤーを使用した画像処理
レイヤー化された画像を制御するためのオープンソース ライブラリを作成するツール。これを使用すると、サイズ変更、トリミング、サムネイルの作成、透かしなどを行うことができます。以下に例を示します。
[php]
view plaincopy
//norway.jpg 画像からノルウェー レイヤーを初期化します
$norwayLayer = ImageWorkshop::initFromPath('/path/to/images/norway. jpg' );
//watermark.png 画像からウォーターマーク レイヤー (ウォーターマーク レイヤー) を初期化します
$watermarkLayer = ImageWorkshop::initFromPath('/path/to/images/watermark.png'); NorwayLayer->getResult(); // これが生成された画像です
header('Content-type: image/jpeg'); // を選択します。 95% の品質の JPG を表示します
終了;
ImageWorkshop は、PHP で画像を操作する最も一般的なケースのいくつかを簡素化するために開発されました。より強力なものが必要な場合は、Imagine ライブラリを参照してください。
6. Snappy ? スナップショット/PDF ライブラリSnappy は、スナップショット、URL、HTML、PDF を生成できる PHP5 ライブラリです。これは、wkhtmltopdf バイナリ (Linux、Windows、および OSX で利用可能) に依存しています。次のように使用できます:
[php] view plaincopy
require_once '/path/to/snappy/src/autoload.php'
use KnpSnappyPdf;
//パスwkhtmltopdf バイナリ パス初期化ライブラリ
$snappy = new Pdf('/usr/local/bin/wkhtmltopdf');
//Content-type ヘッダーを pdf
header に設定してブラウザに PDF を表示します('Content-Type: application/pdf');
header('Content-Disposition:attachment; filename="file.pdf"');
echo $snappy->getOutput('http:// www.github.com');
ホスティングプロバイダーが外部バイナリの呼び出しを許可していない場合があることに注意してください。7. Idiorm ? 軽量 ORM ライブラリ
Idiorm は、私が以前この Web サイトのチュートリアルで使用したお気に入りのものです。これは軽量の ORM ライブラリであり、PDO 上に構築された PHP5 クエリ ビルダーです。これを使用すると、退屈な SQL の書き方を忘れることができます:
[php]
view plaincopy$user = ORM::for_table('user')
->where_equal('username', 'j4mie ')
->find_one();
$user->first_name = 'ジェイミー';
->select('tweet.*')
->join('user', array('user.id', '=', 'tweet.user_id'
))
->where_equal('user.username', 'j4mie')
->find_many();
foreach ($tweets as $tweet) {
echo $tweet->text;
女の子の名前はパリスです。 Idiorm の実装に基づいたソフトウェア。
8. Underscore ? PHP 用ツール ベルト
Underscore は、JavaScript アプリケーション用のオリジナルの Underscore.js ツール ベルトです。 PHP バージョンは期待を裏切らず、ほぼすべてのネイティブ機能をサポートしています。以下に例をいくつか示します:
view plaincopy __::each(array(1, 2, 3), function($num) { echo $num . ','; }); / 1,2,3,
$multiplier = 2;
__::each(array(1, 2, 3), function($num, $index) use ($multiplier) {
echo $インデックス . '=' . ','
}); : 0=2,1=4,2=6,
__::reduce( array(1, 2, 3), function($memo, $num) { return $memo + $num; }, 0) // 6
__::find(array(1, 2, 3, 4), function($num) { return $num % 2 === 0 }); // 2
__::filter(array(1, 2, 3, 4); { return $num % 2 === 0; }); // array(2, 4)
このライブラリは、より強力になります。9. リクエスト ? 単純な HTTP リクエスト
Requests は HTTP リクエストを簡素化するライブラリです。あなたが私と同じで、Curl に渡されるさまざまなパラメータをほとんど覚えていない場合は、これが最適です:
[php]
view plaincopy
$headers = array(' Accept' => 'application /json');
$options = array('auth' => array('user', 'pass')); $request = リクエスト::get('https://api.github.com /gists', $headers, $options);
var_dump($request->status_code);
// int(200)
var_dump($request-> ;headers['content-type ']);
// string(31) "application/json; charset=utf-8"
var_dump($request->body);
// string(26891) "[…]"
このライブラリを利用すると、HEAD、GET、POST、PUT、DELTE、PATCH HTTP リクエストを送信したり、配列を介してファイルやパラメーターを追加したり、対応するすべてのデータにアクセスしたりできます。
10. Buzz ? シンプルな HTTP リクエスト ライブラリ Buzz は、HTTP リクエストを完了するもう 1 つのライブラリです。以下に例を示します。
[php]
view plaincopy
$request = new BuzzMessageRequest('HEAD', '/', 'http://google.com');
$client = new BuzzClientFileGetContents();
echo $request;
のせいでドキュメントが不足しているため、サポートされているすべてのパラメータを学ぶにはソース コードを読む必要があります。
11. Goutte ? Web スクレイピング ライブラリGoutte は、Web サイトをスクレイピングしてデータを抽出するためのライブラリです。リモート ページから特定の要素を簡単に選択できるエレガントな API を提供します。
[php] view plaincopy
require_once '/path/to/goutte.phar';
use GoutteClient;
$クローラー = $ client->request('GET', 'http://www.symfony-project.org/');
//リンクをクリック
$link = $crawler->selectLink('Plugins' ) ->link();
$crawler = $client->click($link);
//CSS のような構文を使用してデータを抽出します
$t = $crawler->filter ('# データ')->text();
echo「これがテキストです: $t」;
12.カーボン? DateTime 库
Carbon は、DateTime API の 1 つの個別展です。
[php] view plaincopy
printf("Right now is %s", Carbon::now()->toDateTimeString()) ;
printf("現在バンクーバーは%sです", Carbon::now('アメリカ/バンクーバー'));
$tomorrow = Carbon::now()->addDay();
$lastWeek = Carbon::now()->subWeek();
$nextSummerOlympics = Carbon::createFromDate(2012)->addyears(4);
$officialDate = Carbon::now()->toRFC2822String();
$howOldAmI = Carbon::createFromDate(1975, 5, 21)->年齢;
$noonTodayLondonTime = Carbon::createFromTime(12, 0, 0, 'ヨーロッパ/ロンドン');
$endOfWorld = Carbon::createFromDate(2012, 12, 21, 'GMT');
//总是以UTC对比
if (Carbon::now()->gte($endOfWorld)) {
die();
}
if (Carbon::now()->isWeekend()) {
echo 'パーティー!';
}
echo Carbon::now()->subMinutes(2)->diffForHumans(); // '2分钟之前'
13.ユーベンチ? マイクロ型基準
Ubench は、PHP コードを評価するためのマイクロ型クラスであり、実行時間と内部メモリ使用率を制御できます。以下は例です。ベンチUベンチ;
$bench = 新しい Ubench;
$bench->start();
//执行一部代码
$bench->end();
//获取执行消費時間间和内存
echo $bench->getTime(); // 156ms または 1.123s
echo $bench->getTime(true); // 経過マイクロ時間 in float
echo $bench->getTime(false, '%d%s'); // 156ms または 1s
echo $bench->getMemoryPeak(); // 152B または 90.00Kb または 15.23Mb
echo $bench->getMemoryPeak(true); // メモリのピーク (バイト単位) 内存峰值
echo $bench->getMemoryPeak(false, '%.3f%s'); // 152B または 90.152Kb または 15.234Mb
//在结束标识处返還内存使用情况
echo $bench->getMemoryUsage(); // 152B または 90.00Kb または 15.23Mb
(仅) 公開時点でこれらの校验を実行することは素晴らしい主意です。
14.検証? 入力テスト ガイド検証は、PHP サイトで最も大きなテスト ガイドと呼ばれています。ただし、その拡張子に名前を付けることができますか? spectValidationValidator as v;
//简单验证
$number = 123;
v::numeric()->validate($number); //true
$usernameValidator = v::alnum()->noWhitespace()->length(1,15);
$usernameValidator->validate('alganet'); //true
//验证对オブジェクトプロパティ
$user = new stdClass;
$user->name = 'Alexandre';
$user->生年月日 = '1987-07-01';
//一个简单链中验证他的属性
$userValidator = v::attribute('name', v::string()->length(1,32))
->属性('誕生日', v::date()->minimumAge(18));
$userValidator->validate($user); //本当
このライブラリを通じて、フォームやその他のユーザーが送信したデータを検証できます。さらに、多くの検証機能が組み込まれており、例外やカスタム エラー メッセージをスローします。
15. Filterus ? フィルタリング ライブラリ
Filterus は別のフィルタリング ライブラリですが、事前に設定されたパターンに一致する出力を検証するだけでなく、フィルタリングすることもできます。以下に例を示します。
[php] view plaincopy
$f = Filter::factory('string,max:5');
$str = 'これはテスト文字列です';
$f->validate($str); // false
$f->filter($str); // 'This '
Filterus には多くの組み込みモードがあり、チェーンの使用をサポートしています。独立した検証ルールを使用して配列要素を検証することもできます。
16. Faker ? フェイクデータジェネレーター
Faker はフェイクデータを生成する PHP ライブラリです。これは、テスト データベースにデータを入力する必要がある場合、または Web アプリケーションのテスト データを生成する必要がある場合に便利です。使い方もとても簡単です:
view plaincopy //Faker Autoloader を参照
require_once '/path/to/Faker/src/autoload.php'
// を使用します。 FakerGenerator インスタンスを作成するためのファクトリー作成
$faker = FakerFactory::create();
// プロパティにアクセスして偽のデータを生成
echo $faker->name; // 'Lucy Cechtelar';
echo $faker->address;
// "426 Jordy Lodge
// Cartwrightshire, SC 88120-6700"
text;シント・ヴェリト・レルム。 atque respectlat voluptatem quia...
オブジェクトのプロパティにアクセスし続ける限り、ランダムに生成されたデータが返され続けます。
17. Mustache.php ? エレガントなテンプレート ライブラリMustache は、実際にさまざまなプログラミング言語で実装されている人気のあるテンプレート言語です。これを使用すると、クライアントまたはサービス セグメントでテンプレートを再利用できます。 ご想像のとおり、Mustache.php は PHP を使用して実装されています。
[php]
view plaincopy
$m = new Mustache_Engine;
さらに高度な例については、公式 Web サイトの Mustache ドキュメントを参照することをお勧めします。
18. Gaufrette ? ファイル システム抽象化レイヤー Gaufrette は、ファイル システムの抽象化レイヤーを提供する PHP5 ライブラリです。これにより、ローカル ファイル、FTP サーバー、Amazon S3 などを同じ方法で操作できるようになります。これにより、将来どのようにファイルにアクセスするかを知らなくてもプログラムを開発できます。
[php]
plaincopy を表示
GaufretteAdapterFtp を FtpAdapter として使用する
//ローカルファイル: $adapter = new LocalAdapter('/var /media');
// オプションで FTP アダプターを使用します
// $ftp = new FtpAdapter($path, $host, $username, $password, $port);ファイルシステム
$filesystem = new Filesystem($adapter);
//使ってください
$content = $filesystem->read('myFile');
$content = 'こんにちは、私は新しいですcontent';
$filesystem->write('myFile', $content);
キャッシュ アダプターとメモリ アダプターもあり、後でさらにアダプターが追加されます。19. Omnipay ? 支払い処理ライブラリ
Omnipay は PHP 支払い処理ライブラリです。明確で一貫した API があり、数十のゲートウェイをサポートしています。このライブラリを使用すると、API を学習し、さまざまな支払いプロセッサを処理するだけで済みます。以下に例を示します。$ゲートウェイ-> setApiKey('abc123');
$formData = ['number' => '411111111111111', 'expiryMonth' => 6, 'expiry Year' => 2016]; ; 1000, 'card' => $formData]);
if ($response->isSuccessful()) {
// データベースを更新します
print_r($response); elseif ($response->isRedirect()) {
// オフサイト支払いゲートウェイにジャンプします
$response->redirect();
} else {
// 支払いに失敗しました: に情報を表示します顧客
exit($response->getMessage());
}
同じ一貫した API を使用することで、複数の決済プロセッサをサポートしたり、必要に応じて切り替えることが簡単になります。
20. アップロード ? ファイルのアップロードの処理
アップロードは、ファイルのアップロードと検証を簡素化するライブラリです。フォームをアップロードするとき、このライブラリはファイルの種類とサイズを検証します。
[php]
view plaincopy
$file = new UploadFile('foo', $storage); /ファイルのアップロードを確認します
$file->addValidations(array(//ファイルタイプが「image/png」であることを確認してください
new UploadValidationMimetype('image/png'),
//確認してくださいファイルは 5m を超えません ("B"、"K"、"m"、"g" を使用)
new UploadValidationSize ('5m')); 成功
$file->upload(); catch (Exception $e) {
//失敗!
$errors = $file->getErrors();
面倒なコードを大幅に削減します。
21. HTMLPurifier ? HTML XSS 保護
HTMLPurifier は、強力なホワイトリストと集計分析を通じて XSS 攻撃からコードを保護する HTML フィルター ライブラリです。また、出力マークアップが標準に準拠していることも保証します。 (ソースコードはgithubにあります)
[php]
view plaincopyrequire_once '/path/to/HTMLPurifier.auto.php'
$config = HTMLPurifier_Config::createDefault();
$ purifier = new HTMLPurifier($config);
$clean_html = $purifier->purify($dirty_html);
Web サイトでユーザーが HTML コードを送信し、そのコードを変更せずに表示できる場合、これは使う時間です この図書館の出番です。
22. ColorJizz-PHP ? カラー操作ライブラリ
ColorJizz は、さまざまなカラー形式を変換し、簡単なカラー操作を実行できるシンプルなライブラリです
[php] plaincopy を表示
MischiefCollectiveColorJizzFormatsHex を使用します。
$red_hex = new Hex(0xFF0000);
$red_cmyk = $hex->toCMYK(); // 0,1,1,0
echo Hex::from文字列('red')->hue(-20)->greyscale(); // 555555
すべての主流のカラー形式をすでにサポートしており、制御できます
23. PHP 地理位置情報ライブラリ
phpgeoは、地理座標間の高精度の距離を計算するためのシンプルなライブラリです。例:
[php]
view plaincopy
use LocationCooperative;
use LocationDistanceVincenty
$coコーディネート1 = new Coordine(19.820664, -155. 468066); // マウナケア山頂
$座標2 = 新しい座標(20.709722, -156.253333); // ハレアカラ頂上
$calculator = new Vincenty(); // 128130.85 を返します。 0 (メートル; ≈128 キロメートル)
地理位置情報データを使用するアプリでうまく機能します。 HTML5 Location API、Yahoo の API (または天気 Web アプリのチュートリアルで行ったようにその両方) を翻訳して、座標を取得してみることができます。
24. ShellWrap ? 美しいコマンドラインラッパー
ShellWrap ライブラリを利用すると、PHP コードで強力な Linux/Unix コマンド ライン ツールを使用できます。
[php] view plaincopy
require 'ShellWrap.php';
use MrRioShellWrap as sh;
//現在のファイルの下にあるすべてのファイルをリストする
echo sh::ls() ;
// git ブランチをチェックアウト
sh::git('checkout', 'master');
// あるコマンドの出力を別のコマンドにパイプすることもできます
//以下では、curl を使用して場所を追跡し、grep を介して 'html' パイプラインをフィルター処理して、example.com Web サイトをダウンロードします
echo sh::grep('html', sh::curl('http://example.com ', array (
‘location’ => true
)));
//新しいファイルを作成します
sh::touch('file.html'); 'file.html');
//ファイルを再度削除します (今回は失敗し、ファイルが存在しないため例外がスローされました)
try {
sh::rm(' file.html ');
} catch (Exception $e) {
echo 'caught failed sh::rm() call';
}
コマンドラインで例外が発生すると、このライブラリは例外をスローします。時間内に対応できます。また、あるコマンドの出力を別のコマンドの入力としてパイプして、柔軟性を高めることもできます。参照元:
PHP開発者が知っておくべき24のクールなPHPライブラリ(マイクロフレームワーク)