تم تطوير Framework في PHP "Pure" من خلال تقييم سهولة العمل مع PHP الإصدار 8.2.1 كائن كائن برمجة (POO) . يتكون هذا الإطار من بنية وحدة التحكم في عرض النموذج (MVC) التي تعزز النموذجية السهلة وقابلية التوسع وصيانة أنظمة الويب.
#framework #php #mvc
composer install
php cli -d set
php cli -d load
الشكوك الرئيسية حول الإطار:
يجب أن يكون مخطط قاعدة البيانات الخاصة بك في مجلد database/schema ، حيث يجب فصل جميع ملفات الجدول في ترتيب إنشاء ASC.
يتم تعريف الأساليب لأعلى ولأسفل للتفاعل مع الأوامر الطرفية ، فإن طريقة IE 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');
}
يجب أن تكون ملفات إدخال البيانات في مجلد database/information ، حيث يجب فصل جميع ملفات الجدول إلى ترتيب إنشاء ASC.
كما هو الحال مع إنشاء الجدول ، يجب عليك أيضًا تحديد أساليب أعلى وهبوطًا .
مثال على الطريقة:
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 التطبيق.
مثال الحصول على الجولة المشتركة:
$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 تم تكوينه: