Структура, разработанная в «чистом» PHP, из -за того, что он оценил простоту работы с PHP версией 8.2.1 Объектный программирование объекта (POO) . Эта структура состоит из архитектуры контроллера представления модели (MVC), которая способствует простой модульности, масштабируемости и обслуживанию веб -систем.
#framework #php #mvc
composer install
php cli -d set
php cli -d load
Основные сомнения в рамках:
Схема вашей базы данных должна находиться в папке database/schema , где все файлы таблиц должны быть разделены на порядок создания ASC.
Методы вверх и вниз определяются для взаимодействия с командами терминалов, то есть метод UP служит для подъема этого взаимодействия в банк, в то время как метод Down отказался от этого взаимодействия в банк. Чтобы определить новую таблицу, вы должны следовать стандартизации ниже метода 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 приложений.
Пример общего раунда Get:
$obRouter->get('/url/exemplo', [
function($request) {
return new Response(200, PagesHomeController::get($request));
}
]);
Пример Dynamic PUT маршрут:
$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;
}
Файл конфигурации Framework находится в папке includes/app.php приложения.
В файле app.php настроен: