El marco se desarrolló en PHP "puro" al valorar la facilidad de trabajar con PHP versión 8.2.1 Programación de objetos de objetos (POO) . Este marco está compuesto por una arquitectura del controlador de vista de modelo (MVC) que promueve la modularidad, la escalabilidad y el mantenimiento fácil de los sistemas web.
#Framework #php #mvc
composer install
php cli -d set
php cli -d load
Principales dudas sobre el marco:
El esquema de su base de datos debe estar en la carpeta database/schema , donde todos los archivos de tabla deben separarse en la orden de creación de ASC.
Los métodos arriba y abajo se definen para la interacción con los comandos terminales, es decir, el método de up sirve para escalar esta interacción al banco, mientras que el método de baja para eliminar esta interacción al banco. Para definir una nueva tabla, debe seguir la estandarización debajo del método UP , donde para establecer nuevas columnas, la tabla solo debe asignar una nueva tabla de $ variable llamando a un método del tipo de datos deseado.
Método de Ejemplo Up:
public function up(): void
{
(new Database)->create('nomeDaTabela', function(Blueprint $table) {
$table->id();
$table->varchar('nomeDaColuna', 100)->notNull();
});
}
Ejemplo de método de abajo:
public function down(): void
{
(new Database)->dropIfExists('nomeDaTabela');
}
Los archivos de inserción de datos deben estar en la carpeta database/information , donde todos los archivos de tabla deben separarse en la orden de creación de ASC.
Al igual que con la creación de tabla, también debe definir los métodos de ascenso y hacia abajo .
Método de Ejemplo Up:
public function up(): void
{
(new Database('nomeDaTabela'))->insert([
'nomeDaColuna' => 'valor a ser inserido'
]);
}
Ejemplo de método de abajo:
public function down(): void
{
(new Database('nomeDaTabela'))->delete('id = 1 ');
}
.
| Base | Dominio | Argumento | Función |
|---|---|---|---|
| PHP CLI | -Db | colocar | Carga las tablas database/schema en la base de datos. |
| PHP CLI | -Db | Gota | Deje caer las tablas database/schema en la base de datos. |
| PHP CLI | -Db | reiniciar | Recarga las tablas database/schema en la base de datos. |
| PHP CLI | -Db | carga | Inserte la database/information en la base de datos. |
| PHP CLI | -Db | fresco | Elimina información database/information de la base de datos. |
| Base | Dominio | Argumento | Función |
|---|---|---|---|
| PHP CLI | -CONSTRUIR | controlador | Crea un nuevo controlador en la carpeta app/Controller . |
| PHP CLI | -CONSTRUIR | modelo | Crea un nuevo modelo en la carpeta app/Model/Entity . |
| PHP CLI | -CONSTRUIR | mesa | Crea una nueva tabla en la carpeta database/schema . |
Utilidad: para hacerlo más fácil si pone el argumento:diretorio se creará un nuevo archivo renombrado.
.
Las rutas de marco se encuentran en la carpeta routes de aplicación.
Ejemplo de ronda común Get:
$obRouter->get('/url/exemplo', [
function($request) {
return new Response(200, PagesHomeController::get($request));
}
]);
Ejemplo de ruta dinámica de put:
$obRouter->put('/url/exemplo/{id}', [
function($request, $id) {
return new Response(200, PagesHomeController::edit($request, $id));
}
]);
Ejemplo de rotación con publicación de middleware:
$obRouter->post('/url/exemplo', [
'middlewares' => [
'basic-auth'
],
function($request) {
return new Response(200, PagesHomeController::set($request));
}
]);
.
Las solicitudes tienen algunos métodos a los que puede acceder por el controlador de forma predeterminada:
¿Cómo acceder a estos métodos?
Ejemplo de getPostvars:
public function metodoExemplo(Request $request): void
{
$request->getPostVars();
}
.
Los modelos deben estar dentro de la carpeta app/Model/Entity .
Cada modelo tiene 4 métodos de forma predeterminada:
Declaración de una clase de modelo: cada modelo debe generarse para contener una tabla específica.
Ejemplo de clase:
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;
}
}
Ejemplo Crear método:
public function create(): bool
{
$this->id = (new Database('nomeDaTabela'))->insert([
'nomeDaColuna' => $this->atributoDaClasse
]);
return true;
}
Método de actualización de ejemplo:
public function update(): bool
{
return (new Database('nomeDaTabela'))->update('nomeDaColuna = '.$this->atributoDaClasse, [
'nomeDaColuna' => $this->atributoDaClasse
]);
}
Método de eliminación de ejemplo:
public function delete(): bool
{
return (new Database('nomeDaTabela'))->securityDelete('nomeDaColuna = '.$this->atributoDaClasse);
}
Método de Ejemplo Get:
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);
}
.
El middleware es los intermediarios de la ruta y se encuentran en la carpeta app/Http/Middleware de la aplicación, están configurados en el archivo include/app.php donde se debe especificar un solo nombre para cada middleware.
Todo el middleware debe tener un método predeterminado:
Ejemplo de 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);
}
}
Configuración del middleware:
MiddlewareQueue::setMap([
'middleware-exemplo' => AppHttpMiddlewareMiddlewareExemplo::class
]);
.
La vista sirve para representar variables declaradas en el HTML que se reemplaza por contenido de la base de datos.
Ejemplo de contenido de vista de representación:
public static function getPage(): string
{
// diretorio da pasta: resources/view
return View::render('pasta/exemploArquivoHtml', [
'nomeDaVariavel' => $conteudoAlterado
]);
}
.
Los controladores deben estar dentro de la carpeta app/Controller .
Cada controlador tiene 5 métodos de forma predeterminada:
Método de Ejemplo Get:
public static function get(): array
{
$itens = [];
$results = EntityExemplo::getExemplos(); // model Exemplo
while($obExemplo = $results->fetchObject(EntityExemplo::class)) {
$itens[] = [
'nomeDaColuna' => $obExemplo->atributoDaClasse
];
}
return $itens;
}
Método de publicación de ejemplo:
public static function set(Request $request): bool
{
$vars = $request->getPostVars();
$obExemplo = new EntityExemplo;
$obExemplo->atributoDaClasse = $vars['valorPost'];
$obExemplo->create();
return true;
}
Método de eliminación de ejemplo:
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;
}
El archivo de configuración de Framework está en la carpeta includes/app.php de la aplicación.
En el archivo app.php está configurado: