Laravel を使用している多くの開発者は、フレームワークが提供する機能の表面をなぞっただけかもしれません。このドキュメントでは、最も一般的な使用例と明らかな機能がカバーされていますが、すべてをカバーしているわけではありません。
誤解しないでください。ドキュメントは素晴らしいものです。ただ、実行できることが非常に多く、すべてをドキュメント化するのは困難です。そこで、Laravel に潜む隠された宝石のいくつかを見ていきます。
カスケードビュー利用可能時期: v4.0.0
記録:いいえ
ビューは構成ファイルのようにカスケードできます。カスケード ビューは、スケーラブルなテーマ システムを開発する場合に非常に役立ちます。次のディレクトリ構造を考えてみましょう。リーリー
これは、return View::make('theme::blog.index'); を実行すると、最初に
themes/default/views ディレクトリに格納されるという考え方です。ビューが見つからない場合は、
app/views にフォールバックします。
View::addNamespace を使用して、両方の場所に独自の名前空間を登録します。
リーリー
###集める###
利用可能時期:
v4.0.0レコード:
パートコレクションは、配列を操作および管理するための優れた方法です。コレクションにはさまざまな便利なメソッドがあり、ArrayableInterface
、IteratorAggregate、
JsonableInterface などの多くの便利なインターフェイスが実装されています。
ストレージにフラット ファイルを使用する小さなブログ エンジンを構築しているとします。並べ替え、フィルタリング、ページングなどの操作を実行できるようにしたいと考えています。
$articles
があり、配列の各メンバーがArticle クラスのインスタンスであると仮定します。次に、
Collection の新しいインスタンスを取得し、それに記事の配列を与えるだけです。
リーリー
###選別###
コレクションを使用して記事を並べ替えることができます。記事を並べ替えて、最近更新された記事を最初に表示してみましょう。この記事では、ファイル システムから記事を読み込むときに、
updatedAt
リーリー
sortBy メソッドと
sortByDesc
###フィルター###
ソートと同様に、MySQL の
WHERE 句と同様に、コレクションを使用して記事をフィルタリングすることもできます。実行された可能性のある検索に基づいて記事をフィルタリングしましょう。
リーリー
filter
メソッドは実際にはIlluminate\Support\Collection の新しいインスタンスを返すため、それを
$results
###ページング###
このコレクションを使用すると、1 ページに記事が多すぎないように記事をページ分割できます。
リーリー
slice
メソッドを使用して、コレクション内の記事の一部を抽出し、それを
$results
この例は、Laravel の
Paginator
クラスの新しいインスタンスを作成することでさらに実装できます。このようにして、すべてのページ番号とリンクを生成できます。
他にもあります!
ランダムな記事を取得できます:
リーリー
IteratorAggregate インターフェイスと
ArrayIterator
リーリー
記事を通常の配列またはその JSON 表現に変換することもできます。リーリー
最も優れたメソッドの 1 つは、おそらくgroupBy です。これを使用すると、特定のキーで記事をグループ化できます。各記事の上部にメタデータがあり、それが解析されて記事本文から削除されると想像してください。
このメタデータの解析はこの記事の範囲を超えていますが、メタデータは解析され、
Article
groupBy
を使用して、記事が公開されたカテゴリごとに記事をグループ化できます。
リーリー
同じカテゴリを共有するすべての記事がグループ化されます。その後、特定のカテゴリの記事を取得できます。
リーリー
正規表現フィルター
利用可能時期:
記録:
いいえLaravel でのルートのフィルタリングは、私たちの多くがすべてのプロジェクトで実行する一般的なタスクです。フィルターを使用すると、ルートがトリガーされる前または後に、ユーザー認証やレート制限などのタスクを実行できます。
Route::filter を使用してフィルタを作成し、個々のルートやルート グループに適用したり、Route::when
を使用して一致するパターンに適用したりできます。
Route::filter('restricted', function($route, $request, $group) { // Restrict user access based on the value of $group }); Route::when('admin/*', 'restricted:admin');
在此示例中,我们创建一个 restricted
过滤器,它需要一个参数 $group
。 $route
和 $request
参数始终提供给 before 过滤器。
但是如果我们想要更大的灵活性怎么办?假设我们想要将过滤器应用于所有 admin
路由除了 admin/login
。我们可以使用路线组并将相关路线移至组外。或者我们可以使用 Route::whenRegex
并编写我们自己的正则表达式。
Route::whenRegex('/^admin(\/(?!login)\S+)?$/', 'restricted:admin');
此正则表达式只是确保它仅适用于以 admin
开头且后面不跟 /login
的路由,但后面可以跟任何其他内容。出色的。现在,我们将 restricted:admin
过滤器应用于除 admin/login
路由之外的所有路由。
消息包
可用时间: v4.0.0
记录:部分
毫无疑问,您已经使用 Illuminate\Support\MessageBag
一段时间了,甚至没有意识到。 MessageBag
扮演的最大角色是在使用 Laravel 内置验证器时包含所有验证错误。
每个视图中都有一个$errors
变量,该变量包含空的MessageBag
实例或使用Redirect::to('/')->withErrors($validator);
刷新到会话的实例
当在特定输入下方显示错误消息时,很多人可能会在表单中执行类似的操作。
{{ Form::text('username', null) }} @if($errors->has('username')) <div class="error">{{ $errors->first('username') }}></div>; @endif
您实际上可以完全删除 if
语句,并使用 first
方法的第二个参数将消息包装在 div
中。
{{ Form::text('username', null) }} {{ $errors->first('username', '<div class="error">:message</div>') }}
好多了,好多了!
流利
可用时间: v3.0.0
记录:部分
Fluent
类已经存在很长时间了,当使用模式生成器创建迁移时,它实际上在框架本身内使用。 Laravel 3 和 Laravel 4 之间,类本身几乎没有变化,唯一大的区别是多了一些接口。
要使用 Fluent
类,您所需要做的就是获取一个实例,然后就可以了。
$user = new Illuminate\Support\Fluent; $user->name('Jason')->country('Australia')->subscriber();
该实例现在定义了 3 个属性:name
,值为 Jason
、country
,值为 Australia
和 subscriber
,值为布尔值 true
。
在 Laravel 4.1 之前,您只能从实例中真正设置和获取属性。从 Laravel 4.1 开始,您可以使用 toArray
和 toJson
方法分别获取属性数组及其 JSON 表示形式。
从 Laravel 4.2 开始,该类还实现了 JsonSerialized
接口,这意味着您可以将实例直接传递到 json_encode
中。
还有更多!
我们已经研究了 Laravel 框架的几个有用的精华。但是,正如您所猜测的,框架内还有更多内容。
了解 Laravel 可能提供的其他功能的最佳方法是深入研究源代码。它并不像您想象的那么可怕,您将学到很多关于您正在构建的框架的知识。
如果您发现了其他宝石,请随时在评论中分享!
以上がLaravel の隠された宝物を発見するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHPが多くのWebサイトよりも優先テクノロジースタックである理由には、その使いやすさ、強力なコミュニティサポート、広範な使用が含まれます。 1)初心者に適した学習と使用が簡単です。 2)巨大な開発者コミュニティと豊富なリソースを持っています。 3)WordPress、Drupal、その他のプラットフォームで広く使用されています。 4)Webサーバーとしっかりと統合して、開発の展開を簡素化します。

PHPは、特にWeb開発の分野で、最新のプログラミングで強力で広く使用されているツールのままです。 1)PHPは使いやすく、データベースとシームレスに統合されており、多くの開発者にとって最初の選択肢です。 2)動的コンテンツ生成とオブジェクト指向プログラミングをサポートし、Webサイトを迅速に作成および保守するのに適しています。 3)PHPのパフォーマンスは、データベースクエリをキャッシュおよび最適化することで改善でき、その広範なコミュニティと豊富なエコシステムにより、今日のテクノロジースタックでは依然として重要になります。

PHPでは、弱い参照クラスを通じて弱い参照が実装され、ガベージコレクターがオブジェクトの回収を妨げません。弱い参照は、キャッシュシステムやイベントリスナーなどのシナリオに適しています。オブジェクトの生存を保証することはできず、ごみ収集が遅れる可能性があることに注意する必要があります。

\ _ \ _ Invokeメソッドを使用すると、オブジェクトを関数のように呼び出すことができます。 1。オブジェクトを呼び出すことができるように\ _ \ _呼び出しメソッドを定義します。 2。$ obj(...)構文を使用すると、PHPは\ _ \ _ Invokeメソッドを実行します。 3。ロギングや計算機、コードの柔軟性の向上、読みやすさなどのシナリオに適しています。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

Dreamweaver Mac版
ビジュアル Web 開発ツール
