ホームページ  >  記事  >  PHPフレームワーク  >  laravelはフレームワークのソースコードを理解できません

laravelはフレームワークのソースコードを理解できません

PHPz
PHPzオリジナル
2023-05-20 15:03:08521ブラウズ

Laravel は人気のある PHP フレームワークですが、多くの初心者にとって、フレームワークのソース コードを読むのは非常に困難です。この記事では、読者がこのフレームワークをよりよく理解できるように、Laravel のコード構造と重要な部分を説明します。

Laravel のコード構造

Laravel のコード構造は非常に明確で、フレームワーク全体が複数の独立したモジュールに分解されており、各モジュールには固有の責任と機能があります。この構造により、Laravel の保守と開発が容易になります。 Laravel のメイン ディレクトリとファイルの説明は次のとおりです。

  1. app
    このディレクトリには、Laravel アプリケーションのコア コードが含まれています。その中心となる構成要素は、コントローラー、ビュー、モデル、ルートです。
  2. bootstrap
    このディレクトリには、Laravel アプリケーションの起動時に実行されるコードが含まれています。 PHP フレームワークを知っている場合は、クラスの自動読み込みや設定ファイルの読み込みなど、このディレクトリに馴染みがあるでしょう。
  3. config
    このディレクトリには、アプリケーション構成ファイルが含まれています。
  4. database
    このディレクトリには、データベース移行ファイルとデータ充填ファイルが含まれています。
  5. public
    このディレクトリには、アプリケーションのパブリック アクセス ポイントが含まれています。アプリケーションへのエントリ ポイントは、index.php ファイルです。
  6. resources
    このディレクトリには、特定のアプリケーションのいくつかのアセット (構成ファイル、ビュー、言語ファイル、JavaScript ファイル、CSS ファイルなど) が含まれています。
  7. routes
    このディレクトリには、アプリケーションのルーティング ファイル、つまり URL からコントローラへのマッピングが含まれています。
  8. storage
    このディレクトリには、ログ ファイル、フレームワークによって生成されたキャッシュ、フレームワークによって生成されたルーティング キャッシュやビューなどのフレームワークによって生成されたファイルなど、Laravel によって生成されたいくつかのファイルが含まれています。
  9. tests
    このディレクトリには、アプリケーションをテストするためのテスト フォルダーが含まれています。
  10. vendor
    このディレクトリには、依存パッケージのコードが含まれています。 Laravel フレームワークは、いくつかの自社開発パッケージやその他のパッケージに依存しています。

Laravel のキーコードの一部

Laravel のコード構造では、app フォルダー内のコードに焦点を当てます。

コントローラー

コントローラーはLaravelの主要部分であり、アプリケーションでHTTPリクエストに応答するために使用されます。 app/Http/Controllers フォルダーにすべてのコントローラー クラスが表示されます。以下はサンプル コントローラーです:

<?php

namespace AppHttpControllers;

use IlluminateHttpRequest;
use AppUser;
use AppHttpControllersController;

class UserController extends Controller
{
    /**
     * 显示指定用户的个人资料
     *
     * @param  int  $id
     * @return Response
     */
    public function show($id)
    {
        return view('user.profile', ['user' => User::findOrFail($id)]);
    }
}

コントローラーでは、さまざまな状況を解決するためのさまざまなメソッドを定義できます。たとえば、$id パラメーターを show() に渡すことができます。 メソッドを処理すると、このメソッドはビューとユーザーの ID を返します。

Model

Model は Laravel でデータベースを扱うメソッドで、データベーステーブルに関連付けられた PHP クラスです。 app フォルダー内の app/Models フォルダーには、次の例のユーザー モデルのようなさまざまなモデルが保存されます。

<?php

namespace AppModels;

use IlluminateDatabaseEloquentModel;

class User extends Model
{
    /**
     * 模型的默认属性值。
     *
     * @var array
     */
    protected $attributes = [
        'can_send_email' => false,
    ];
}

モデルでは、さまざまな属性を定義できます。およびデータベース テーブルに対する操作を実装するメソッドです。たとえば、$attributes 属性はモデルのデフォルトの属性値を設定できます。ユーザー モデルは次のように取得できます:

$user = AppModelsUser::find($id);

View

ビューは、ユーザーが読み取れる方法でデータと情報を表示するために使用される方法です。すべてのビュー ファイルは、resources/views フォルダーにあります。通常、ビューには HTML、CSS、JavaScript コードが含まれます。

以下は簡単な Blade テンプレートの例です:

<!doctype html>
<html>
    <head>
        <title>Laravel</title>
    </head>
    <body>
        <div class="container">
            @yield('content')
        </div>
    </body>
</html>

このテンプレート例では、ページ コンテンツをネストするタイトルとコンテナを定義し、@yield(' content') を使用してコンテンツを挿入します。

Routing

ルーティングは、URL とアプリケーション内のコードを照合するために使用されます。Laravel の対応するルーティング ファイルは、routes/web.php にあります。ルートの例を次に示します。

<?php

use IlluminateSupportFacadesRoute;
use AppHttpControllersUserController;

Route::get('/user/{id}', [UserController::class, 'show']);

このルートの例では、ユーザー リクエストの URL パターンを作成し、すべてのリクエストは UserController::show() メソッドで処理されます。

概要

Laravel のコード構造とコア部分は、主に app フォルダーに集中しています。コントローラー、モデル、ビュー、ルートは、Laravel の 4 つの非常に重要な部分です。これらの部分がコード内でどのように実装されているかを理解すれば、Laravel の動作をより深く理解できるようになります。もちろん、Laravel 開発者はこれらの部分に新しい機能を常に追加しているため、Laravel を学習するプロセスも進行中です。

以上がlaravelはフレームワークのソースコードを理解できませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。