PHPバージョン8.2.1オブジェクトオブジェクトプログラミング(POO)での作業の容易さを評価することにより、「純粋な」PHPで開発されたフレームワーク。このフレームワークは、Webシステムの簡単なモジュール性、スケーラビリティ、およびメンテナンスを促進するモデルビューコントローラー(MVC)アーキテクチャで構成されています。
#FrameWork #PHP #MVC
composer install
php cli -d set
php cli -d load
フレームワークについての主な疑問:
データベースのスキームは、すべてのテーブルファイルをASC作成順序に分離する必要があるdatabase/schemaフォルダーにある必要があります。
上下の方法は、ターミナルコマンドとの相互作用のために定義されています。つまり、この相互作用を銀行に登るのに役立ち、この相互作用を銀行に落とすためのダウン方法です。新しいテーブルを定義するには、 UPメソッドの下の標準化に従う必要があります。新しい列を設定するには、目的のデータ型のメソッドを呼び出すことにより、新しい変数$テーブルのみを割り当てる必要があります。
例UPメソッド:
public function up(): void
{
(new Database)->create('nomeDaTabela', function(Blueprint $table) {
$table->id();
$table->varchar('nomeDaColuna', 100)->notNull();
});
}
ダウンメソッドの例:
public function down(): void
{
(new Database)->dropIfExists('nomeDaTabela');
}
データ挿入ファイルは、すべてのテーブルファイルをASC作成順序に分離する必要があるdatabase/informationフォルダーにある必要があります。
テーブルの作成と同様に、上下の方法も定義する必要があります。
例UPメソッド:
public function up(): void
{
(new Database('nomeDaTabela'))->insert([
'nomeDaColuna' => 'valor a ser inserido'
]);
}
ダウンメソッドの例:
public function down(): void
{
(new Database('nomeDaTabela'))->delete('id = 1 ');
}
。
| ベース | 指示 | 口論 | 関数 |
|---|---|---|---|
| PHP CLI | -db | セット | データベースにdatabase/schemaテーブルをロードします。 |
| PHP CLI | -db | 落とす | データベースにdatabase/schemaテーブルをドロップします。 |
| PHP CLI | -db | リセット | データベースのdatabase/schemaテーブルを充電します。 |
| PHP CLI | -db | 負荷 | 情報database/informationをデータベースに挿入します。 |
| PHP CLI | -db | 新鮮な | database/information情報をデータベースから削除します。 |
| ベース | 指示 | 口論 | 関数 |
|---|---|---|---|
| PHP CLI | -建てる | コントローラ | app/Controllerフォルダーに新しいコントローラーを作成します。 |
| PHP CLI | -建てる | モデル | app/Model/Entityフォルダーに新しいモデルを作成します。 |
| PHP CLI | -建てる | テーブル | database/schemaフォルダーに新しいテーブルを作成します。 |
ユーティリティ: argumento:diretorio新しい名前変更ファイルが作成されます。
。
フレームワークルートは、アプリケーションroutesフォルダーにあります。
例Common Round GET:
$obRouter->get('/url/exemplo', [
function($request) {
return new Response(200, PagesHomeController::get($request));
}
]);
例のダイナミックパットルート:
$obRouter->put('/url/exemplo/{id}', [
function($request, $id) {
return new Response(200, PagesHomeController::edit($request, $id));
}
]);
ミドルウェア投稿付きの例:
$obRouter->post('/url/exemplo', [
'middlewares' => [
'basic-auth'
],
function($request) {
return new Response(200, PagesHomeController::set($request));
}
]);
。
要求には、デフォルトでコントローラーがアクセスできるいくつかの方法があります。
これらの方法にアクセスする方法は?
getPostVarsの例:
public function metodoExemplo(Request $request): void
{
$request->getPostVars();
}
。
モデルはapp/Model/Entityフォルダー内にある必要があります。
すべてのモデルには、デフォルトで4つの方法があります。
モデルクラスの宣言:すべてのモデルを生成して、特定のテーブルを保持する必要があります。
クラスの例:
class Post
{
public int $id; // coluna id associada no banco
public string $title; // coluna title associada no banco
public string $content; // coluna content associada no banco
public function create(): bool
{
$this->id = (new Database('post'))->insert([
'title' => $this->title, // referenciando nome da coluna com o valor
'content' => $this->content
]);
return true;
}
}
例の作成方法:
public function create(): bool
{
$this->id = (new Database('nomeDaTabela'))->insert([
'nomeDaColuna' => $this->atributoDaClasse
]);
return true;
}
更新方法:
public function update(): bool
{
return (new Database('nomeDaTabela'))->update('nomeDaColuna = '.$this->atributoDaClasse, [
'nomeDaColuna' => $this->atributoDaClasse
]);
}
例の削除方法:
public function delete(): bool
{
return (new Database('nomeDaTabela'))->securityDelete('nomeDaColuna = '.$this->atributoDaClasse);
}
例を取得する方法:
public static function getTableName(
string $where = null,
string $order = null,
string $limit = null,
string $fields = '*'
): PDOStatement
{
return (new Database('nomeDaTabela'))->select($where, $order, $limit, $fields);
}
。
ミドルウェアはルートの仲介者であり、アプリケーションのapp/Http/Middlewareフォルダーにあり、各ミドルウェアの単一名を指定する必要があるinclude/app.phpファイルで構成されています。
すべてのミドルウェアにはデフォルトの方法が必要です。
ミドルウェアの例:
class MiddlewareExemplo
{
private function checkStatus(Request $request): void
{
$vars = $request->getPostVars();
if ($vars['status'] == 'error') {
throw new Exception("A página está com erro");
}
}
public function handle(Request $request, Closure $next): Response
{
$this->checkStatus($request); // se o status não estiver com erro carrega a aplicação
return $next($request);
}
}
ミドルウェアの設定:
MiddlewareQueue::setMap([
'middleware-exemplo' => AppHttpMiddlewareMiddlewareExemplo::class
]);
。
Viewは、HTMLで宣言された変数をデータベースからのコンテンツに置き換えることをレンダリングします。
レンダリングビューコンテンツの例:
public static function getPage(): string
{
// diretorio da pasta: resources/view
return View::render('pasta/exemploArquivoHtml', [
'nomeDaVariavel' => $conteudoAlterado
]);
}
。
コントローラーはapp/Controllerフォルダー内にある必要があります。
すべてのコントローラーには、デフォルトで5つの方法があります。
例を取得する方法:
public static function get(): array
{
$itens = [];
$results = EntityExemplo::getExemplos(); // model Exemplo
while($obExemplo = $results->fetchObject(EntityExemplo::class)) {
$itens[] = [
'nomeDaColuna' => $obExemplo->atributoDaClasse
];
}
return $itens;
}
例の投稿方法:
public static function set(Request $request): bool
{
$vars = $request->getPostVars();
$obExemplo = new EntityExemplo;
$obExemplo->atributoDaClasse = $vars['valorPost'];
$obExemplo->create();
return true;
}
例の削除方法:
public static function delete(Request $request, int $id): bool
{
$vars = $request->getPostVars();
$obExemplo = EntityExemplo::getExemplos('nomeDaColuna = '.$id); // busca o valor pelo id
$obExemplo->delete();
return true;
}
フレームワーク構成ファイルは、アプリケーションのincludes/app.phpフォルダーにあります。
app.phpファイルが構成されています: