PHP アプリケーションの構築には、多くの場合、明確な構造を維持するために多くの定型コードと編成が必要になります。多くの開発者は、これを処理するために Laravel や Symfony などのフレームワークを利用しますが、軽量で単純な MVC (Model-View-Controller) フレームワークだけが必要な場合はどうすればよいでしょうか? NexaPHP はまさにあなたが探しているものかもしれません。このミニマリスト フレームワークは、大規模なフレームワークの重みを一切排除した無駄のない構造を求める開発者向けに設計されており、小規模から中規模のアプリケーションの学習または作成に理想的な選択肢となります。
NexaPHP は、シンプルさを重視し、コア フレームワーク機能をより詳細に制御したい開発者向けに調整されています。 NexaPHP の設計は簡単で、複雑なフレームワーク抽象化を介さずにアプリケーションの重要な側面に集中できます。 NexaPHP が提供するものは次のとおりです:
初心者でも、MVC 原則を学びたい経験豊富な開発者でも、NexaPHP のフットプリントは小さいため、PHP Web 開発に直接取り組むことができます。
Composer 経由で NexaPHP をインストールします。これにより、PHP プロジェクトに簡単に統合できます。
composer require ravikisha/nexaphp
NexaPHP アプリケーションを初期化するには、アプリケーションのルート ディレクトリとデータベースの詳細を設定します。
use ravikisha\nexaphp\Application; $config = [ 'userClass' => \app\models\User::class, 'db' => [ 'dsn' => 'mysql:host=localhost;dbname=testdb', 'user' => 'root', 'password' => 'password' ] ]; $app = new Application(__DIR__, $config);
このセットアップには以下が含まれます:
NexaPHP は、そのコア MVC 構造を強化するいくつかの基本クラスを提供します。
コントローラーは、NexaPHP がさまざまなルートのリクエストを処理する方法を定義します。以下は SiteController の例です:
composer require ravikisha/nexaphp
$this->render() を使用するとビュー ファイルがレンダリングされ、setLayout() はカスタム レイアウトを定義できます。
ルーターを使用すると、特定のコントローラーのアクションに対応する GET および POST ルートを定義できます。
use ravikisha\nexaphp\Application; $config = [ 'userClass' => \app\models\User::class, 'db' => [ 'dsn' => 'mysql:host=localhost;dbname=testdb', 'user' => 'root', 'password' => 'password' ] ]; $app = new Application(__DIR__, $config);
NexaPHP はパラメータを使用した動的ルートをサポートしているため、ユーザー固有のページを処理できます。
namespace app\controllers; use ravikisha\nexaphp\Controller; class SiteController extends Controller { public function home() { return $this->render('home'); } public function contact() { return $this->render('contact'); } }
NexaPHP はデータベースとの対話に PDO を使用するため、さまざまなデータベースとの統合が容易になります。簡単な概要は次のとおりです:
モデルの定義: モデルを使用してデータベース テーブルと対話します。
$app->router->get('/', [SiteController::class, 'home']); $app->router->post('/contact', [SiteController::class, 'contact']);
移行: NexaPHP は移行を実行してデータベース スキーマを更新し続けることができます:
$app->router->get('/profile/{id}', [UserController::class, 'profile']);
CRUD 操作: NexaPHP は、データベース操作用に save() や findOne() などのメソッドを提供します。
NexaPHP のミドルウェア機能を使用すると、リクエストのフィルタリングと制御を実装できます。カスタム ミドルウェアの作成と適用の例を次に示します:
namespace app\models; use ravikisha\nexaphp\db\DBModel; class User extends DBModel { public string $id; public string $name; public static function tableName(): string { return 'users'; } public function attributes(): array { return ['id', 'name']; } }
ミドルウェアを登録するには:
$app->db->applyMigrations();
NexaPHP ビューは、HTML テンプレートを管理する簡単な方法を提供します。デフォルトでは、テンプレートはビュー フォルダーに保存され、レイアウト ファイルを使用して一貫したデザインを維持できます。
namespace app\middlewares; use ravikisha\nexaphp\middlewares\BaseMiddleware; class AuthMiddleware extends BaseMiddleware { public function execute() { // Authentication logic } }
レイアウトはビュー/レイアウトの下で定義でき、{{content}} のようなプレースホルダーを使用するとビューを動的に挿入できます。
NexaPHP は便利なフォームとフィールド ビルダーを提供し、動的な HTML フォームを簡単に作成できます。
$this->registerMiddleware(new AuthMiddleware(['profile', 'settings']));
さまざまなフォーム要件に応じて、パスワード、電子メール、日付フィールドなどのさまざまなフィールド タイプをレンダリングできます。
Session クラスはセッション処理を提供し、フラッシュ メッセージの設定、取得、管理を可能にします。
return $this->render('profile', ['name' => 'John Doe']);
これは、一時的な通知を表示する場合に特に便利です。
NexaPHP には、次のような例外処理のサポートが組み込まれています。
ユーザー認証は、login()、logout()、isGuest() などの基本メソッドを提供する抽象 UserModel クラスを通じて管理されます。
composer require ravikisha/nexaphp
以下は、基本的な NexaPHP アプリケーションのセットアップの例です。
use ravikisha\nexaphp\Application; $config = [ 'userClass' => \app\models\User::class, 'db' => [ 'dsn' => 'mysql:host=localhost;dbname=testdb', 'user' => 'root', 'password' => 'password' ] ]; $app = new Application(__DIR__, $config);
NexaPHP は、PHP で MVC アプリケーションを構築するためのクリーンで簡潔な方法を提供します。これは学習や小規模プロジェクトを対象としていますが、MVC フレームワークが内部でどのように機能するかを理解したい人にとっては最適な選択肢です。 GitHub でフレームワークを調べるか、Composer 経由でインストールして開始してください。
GitHub: NexaPHP GitHub
作曲者: Packagist 上の NexaPHP
以上がNexaPHP の紹介: 軽量 MVC PHP フレームワークの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。