バージョン2.0.2-2024-12-13
モデルビューコントローラー(MVC)アーキテクチャパターンを実装するシンプルなWebアプリケーションフレームワーク。
composer require "simplesamlphp/simplesamlphp:^2.2" )UMVCはモジュールをサポートし、構成/コンポーネントを参照してください。
フレームワークは、そのフレームワークプラグインを使用した機能テストをサポートしています。グローバルにインストールされたコーデュテーションは、必要なものと互換性がなければなりません(現在v3.1.2)
UMVCはCLIをサポートします。独自のコマンドを作成できます。組み込みコマンドは次のとおりです。
コマンドをphp app $command $action $parametersとして実行します
フレームワークは、作曲家とのプロジェクトに含めることができます。 Run composer require uhi67/umvc:dev-master 。新しい空のプロジェクトは、 composer create-project --prefer-dist uhi67/umvc-app nameを使用して作成できます。これにより、UMVCフレームワークを使用して名前付きディレクトリに新しい空のアプリケーションを提供します。お好みの名前を選択してください。
警告:この部分は建設中です。クラス定義のDocblockで言及されたクラスの詳細をご覧ください。
composer.jsonを作成し、 uh67/umvc composer init --name myname/myapp --require uhi67/umvc:*を含みます。composer updateを実行します。vendor/uh67/umvc/appアプリケーションのルートにコピーします。これは、CLIコマンドのランチャーです。vendor/uh67/umvc/www/index.phpおよび.htaccessをアプリケーションのwwwディレクトリにコピーします。これは、Webインターフェイスのルーターです。config/config.phpファイルでアプリケーションのconfigを作成します。 vendor/uh67/umvc/config/config-template.phpのテンプレートを参照してください。runtimeディレクトリを作成して、一時的なファイルを配置します。www/assetsディレクトリを作成して、Webサーバーが作成して、さまざまなコンポーネントのキャッシュされたアセットファイルを配置します。 appcontrollers namespaceを使用してcontrollers dirでコントローラーを作成し、 uhi67umvcControllerから導出します。views監督のビューを簡単なphtml形式で作成し、 views/controller/action.php構造に従ってそれらを整理します。modelsディレクトリにモデルを作成します。データベースモデルはuhi67umvcModelです。データベースレスモデルはuhi67umvcBaseModelです。 migrationsディレクトリに配置します。views/layoutsディレクトリにレイアウトを配置します。ビューは、他の部分的なビューを呼び出すことができます。uhi67umvcCommandクラスから派生して、 commandsディレクトリでCLIコマンドを定義できます。フレームワークには組み込みコマンドがあります。 php appコマンドは、組み込みとカスタムの両方の利用可能なコマンドをすべてリストします。messges/la.phpファイルに配置します。「la」が翻訳したい言語です。 メインアプリクラス自体を含むほとんどのUMVCクラスのすべてのコンポーネントは、 uhi67umvcComponentです。 Componentプロパティの機能を実装しています:Magic Getter and SetterはGetPropertyとSetPropertyメソッドを使用します。 Componentは構成可能です:コンストラクターは、パブリックプロパティの値を含む構成配列を受け入れます。
MySqlConnectionデータベースに接続します。 SQLクエリビルダーが含まれています。現在、 Connectionの唯一の実装。FileCache - CacheInterfaceの唯一の実装。SamlAuth AuthManagerの唯一の実装。L10n単純なローカリゼーション、デフォルトの自動インクルド、UMVCメッセージのみを変換します。L10nFileアプリケーションのメッセージを翻訳するファイルベースのローカリゼーション。 Form - モデルを使用してHTMLフォームを表示および処理するための内蔵ビューを備えたウィジェット。Grid (ウィジェットですが、内蔵ビューはまだ欠落しています) - モデルの塗装されたフィルタリングされたリストを表示します。Query - PHP構造のパラメーター化された柔軟なSQLクエリを表します。 SQLコマンドはそこから構築できます。Request -HTTPリクエストを表し、Getパラメーターを取得および投稿するために使用できます。Session - 現在のPHPセッションを表し、変数を取得および設定するために使用できます。 Webアプリケーションの単一のエントリスクリプトは、 www/index.phpです。それぞれ、CLIアプリケーションの単一のエントリスクリプトはappファイルです。両方ともvendor/uhi67/umvc/ディレクトリからアプリケーションディレクトリにコピーする必要があります。
www/.htaccessルールはwww/index.phpに発表されていないすべての要求をリダイレクトします。ただし、静的資産はWWWディレクトリから直接提供されます。図書館資産の提供の詳細については、後でご覧ください。
index.phpオートローダーを初期化し、メイン構成をロードし、メインオブジェクト(構成で定義されたクラス、通常はuhi67/umvc/Appまたはその子孫)を作成します。メイン構成は、構成可能なComponentのルールに従います。
https:// myapp/acontroller/anactionとして形成されたすべてのURLは、次の方法で処理されます。
uhi67/umvc/App要求を解析し、実際のコントローラークラス( uhi67/umvc/Controllerから派生した)を計算して、コントローラーを作成し、要求されたアクションメソッドを実行します。上記の例のように、 Acontrollerはcontrollersディレクトリ内のコントローラークラスをAcontrollerControllerとして参照し、 Anactionはアクションメソッド( ActionAnaction )を指します。
アクション名がURLから欠落している場合、 actionDefaultが実行されます。コントローラー名も同様に欠落している場合、構成されたMainControllerが使用されます。コントローラー名を指定せずにデフォルトコントローラーのアクション名を持つURLを作成することもできます。これは、このアクションと同じ名前のコントローラーを持つことができない唯一の制限です。
php app acontroller/anactionとして形成されたAl Cliコマンドは、次のように処理されます。
uhi67/umvc/App 、リクエストを解析し、実際のコントローラークラス( uhi67/umvc/Commandから派生した)を使用して使用し、コントローラーを作成し、要求されたアクションメソッドを実行します。上記の例のように、 Acontrollerはcommands DirectoryのコントローラークラスをAcontrollerControllerとして参照し、 Anactionはアクションメソッド( ActionAnaction )を指します。組み込みコマンドも同じ方法で実行できます。アプリケーションに同じ名前のコマンドは、内蔵コマンドをオーバーライドします。
現在のURL要求の部分には、次のようにアクセスできます。
コントローラーとアクション名を使用して新しいURLを作成し、Optioanl Qureyパラメーターを使用するには、次のいずれかを使用します。
ビューファイルでは、 wwwディレクトリ<link href="/assets/css/app.css" rel="stylesheet">下にある静的な方法で静的な方法で参照できます。それどころか、作曲家が作成したベンダーライブラリのどこかにある資産ファイルを参照したい場合は、次の方法で使用できます。
<script src="<?= $this->linkAssetFile('npm-asset/bootstrap/dist', 'js/bootstrap.bundle.min.js') ?>"></script> linkAssetFile関数は、最初の引数のディレクトリからすべてのファイルをwwwの下のAsset Cacheディレクトリにコピーし、ファイルに有効なURLを作成します。注:最初の引数は、資産パッケージを識別します。パッケージの最初の呼び出しのみがファイルをコピーします。同じパッケージへの後続のすべての呼び出しは、ファイルのリンクのみを生成します。
アセットキャッシュはcomposer installコマンドによって空になります。アセットキャッシュは常にwww/asset/cacheであり、構成できません。
...
このリポジトリには、内部コード受容単位テスト用の組み込みテストアプリケーションが含まれています。 tests Directoryのテストアプリの唯一の目的は、最初のサンプルアプリケーションではなく、ユニットテストを実行できることです。
git clonecomposer updatetests/_data/test-config.phpを作成しますtests/_data/test-config.phpのデータベース設定に従ってumvc-testデータベースを作成するphp vendor/bin/codecept run unitより多くのユニットテストが来ています...
組み込みのDockerizedテスト環境を使用して、さまざまなPHPおよびデータベースバージョンでテストできます。
ステップ:
tests/docker-compose.ymlで必要なデータベースバージョンを構成します(このテンプレートファイルのクローンを作成)tests/docker/DockerfileでPHPバージョンを構成する(拡張インストール手順が変更される可能性がある)tests/.envで使用されているポートとベースURLを構成しますdocker compose up --build -d ( tests dir)docker exec -it umvc-php-1 php vendor/bin/codecept run unitでユニットテストを実行する