Kerangka kerja yang dikembangkan dalam PHP "murni" dengan menilai kemudahan bekerja dengan PHP versi 8.2.1 Object Object Pemrograman (POO) . Kerangka kerja ini terdiri dari arsitektur Model View Controller (MVC) yang mempromosikan modularitas, skalabilitas, dan pemeliharaan sistem web yang mudah.
#framework #php #mvc
composer install
php cli -d set
php cli -d load
Keraguan utama tentang kerangka kerja:
Skema database Anda harus ada di folder database/schema , di mana semua file tabel harus dipisahkan menjadi urutan pembuatan ASC.
Metode naik dan turun didefinisikan untuk interaksi dengan perintah terminal, yaitu metode up berfungsi untuk memanjat interaksi ini ke bank, sementara metode bawah untuk menjatuhkan interaksi ini ke bank. Untuk mendefinisikan tabel baru, Anda harus mengikuti standardisasi di bawah metode UP , di mana harus mengatur kolom baru tabel hanya harus menetapkan variabel $ tabel baru dengan memanggil metode tipe data yang diinginkan.
Contoh metode:
public function up(): void
{
(new Database)->create('nomeDaTabela', function(Blueprint $table) {
$table->id();
$table->varchar('nomeDaColuna', 100)->notNull();
});
}
Metode Down Contoh:
public function down(): void
{
(new Database)->dropIfExists('nomeDaTabela');
}
File penyisipan data harus dalam folder database/information , di mana semua file tabel harus dipisahkan menjadi urutan kreasi ASC.
Seperti halnya pembuatan tabel, Anda juga harus mendefinisikan metode naik dan turun .
Contoh metode:
public function up(): void
{
(new Database('nomeDaTabela'))->insert([
'nomeDaColuna' => 'valor a ser inserido'
]);
}
Metode Down Contoh:
public function down(): void
{
(new Database('nomeDaTabela'))->delete('id = 1 ');
}
.
| Basis | Memerintah | Argumen | Fungsi |
|---|---|---|---|
| PHP CLI | -Db | mengatur | Memuat Tabel database/schema dalam database. |
| PHP CLI | -Db | Menjatuhkan | Jatuhkan tabel database/schema dalam database. |
| PHP CLI | -Db | mengatur ulang | Isi ulang tabel database/schema dalam database. |
| PHP CLI | -Db | memuat | Masukkan database/information ke database. |
| PHP CLI | -Db | segar | Menghapus informasi database/information dari database. |
| Basis | Memerintah | Argumen | Fungsi |
|---|---|---|---|
| PHP CLI | -MEMBANGUN | pengontrol | Membuat pengontrol baru di folder app/Controller . |
| PHP CLI | -MEMBANGUN | model | Membuat model baru di folder app/Model/Entity . |
| PHP CLI | -MEMBANGUN | meja | Membuat tabel baru di folder database/schema . |
Utilitas: Untuk membuatnya lebih mudah jika Anda meletakkan argumento:diretorio akan dibuat file yang diganti namanya.
.
Rute kerangka kerja ada di folder routes aplikasi.
Contoh putaran umum mendapatkan:
$obRouter->get('/url/exemplo', [
function($request) {
return new Response(200, PagesHomeController::get($request));
}
]);
Contoh Rute Put Dynamic:
$obRouter->put('/url/exemplo/{id}', [
function($request, $id) {
return new Response(200, PagesHomeController::edit($request, $id));
}
]);
Contoh Rota dengan Middleware Post:
$obRouter->post('/url/exemplo', [
'middlewares' => [
'basic-auth'
],
function($request) {
return new Response(200, PagesHomeController::set($request));
}
]);
.
Permintaan memiliki beberapa metode yang dapat diakses oleh pengontrol secara default:
Bagaimana cara mengakses metode ini?
Contoh GetPostVars:
public function metodoExemplo(Request $request): void
{
$request->getPostVars();
}
.
Model harus berada di dalam folder app/Model/Entity .
Setiap model memiliki 4 metode secara default:
Deklarasi kelas model: Setiap model harus dihasilkan untuk memegang tabel tertentu.
Contoh kelas:
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;
}
}
Contoh Buat metode:
public function create(): bool
{
$this->id = (new Database('nomeDaTabela'))->insert([
'nomeDaColuna' => $this->atributoDaClasse
]);
return true;
}
Contoh Metode Pembaruan:
public function update(): bool
{
return (new Database('nomeDaTabela'))->update('nomeDaColuna = '.$this->atributoDaClasse, [
'nomeDaColuna' => $this->atributoDaClasse
]);
}
Contoh Hapus Metode:
public function delete(): bool
{
return (new Database('nomeDaTabela'))->securityDelete('nomeDaColuna = '.$this->atributoDaClasse);
}
Contoh Dapatkan Metode:
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);
}
.
Middleware adalah perantara dari rute dan berada di folder app/Http/Middleware dari aplikasi, mereka dikonfigurasi dalam file include/app.php di mana seseorang harus menentukan satu nama untuk setiap middleware.
Semua middleware harus memiliki metode default:
Contoh middleware:
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);
}
}
Mengatur middleware:
MiddlewareQueue::setMap([
'middleware-exemplo' => AppHttpMiddlewareMiddlewareExemplo::class
]);
.
View berfungsi untuk membuat variabel yang dinyatakan dalam HTML untuk digantikan oleh konten dari database.
Contoh memberikan konten tampilan:
public static function getPage(): string
{
// diretorio da pasta: resources/view
return View::render('pasta/exemploArquivoHtml', [
'nomeDaVariavel' => $conteudoAlterado
]);
}
.
Pengontrol harus berada di dalam folder app/Controller .
Setiap pengontrol memiliki 5 metode secara default:
Contoh Dapatkan Metode:
public static function get(): array
{
$itens = [];
$results = EntityExemplo::getExemplos(); // model Exemplo
while($obExemplo = $results->fetchObject(EntityExemplo::class)) {
$itens[] = [
'nomeDaColuna' => $obExemplo->atributoDaClasse
];
}
return $itens;
}
Contoh metode posting:
public static function set(Request $request): bool
{
$vars = $request->getPostVars();
$obExemplo = new EntityExemplo;
$obExemplo->atributoDaClasse = $vars['valorPost'];
$obExemplo->create();
return true;
}
Contoh Hapus Metode:
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;
}
File konfigurasi kerangka kerja ada di folder includes/app.php aplikasi.
Di file app.php dikonfigurasi: