Framework s'est développé en PHP "pur" en valorisant la facilité de travail avec la programmation d'objets d'objet PHP 8.2.1 (POO) . Ce cadre est composé de l'architecture du contrôleur de vue de modèle (MVC) qui favorise la modularité, l'évolutivité et la maintenance faciles des systèmes Web.
#Framework #php #mvc
composer install
php cli -d set
php cli -d load
Les principaux doutes sur le cadre:
Le schéma de votre base de données doit être dans le dossier database/schema , où tous les fichiers de table doivent être séparés dans l'ordre de création ASC.
Les méthodes de haut en bas sont définies pour l'interaction avec les commandes terminales, c'est-à-dire que la méthode UP sert à grimper cette interaction à la banque, tandis que la méthode Down pour abandonner cette interaction à la banque. Pour définir une nouvelle table, vous devez suivre la normalisation sous la méthode UP , où définir de nouvelles colonnes, le tableau ne doit attribuer qu'une nouvelle table de variable $ en appelant une méthode du type de données souhaité.
Exemple de méthode UP:
public function up(): void
{
(new Database)->create('nomeDaTabela', function(Blueprint $table) {
$table->id();
$table->varchar('nomeDaColuna', 100)->notNull();
});
}
Exemple de méthode Down:
public function down(): void
{
(new Database)->dropIfExists('nomeDaTabela');
}
Les fichiers d'insertion de données doivent être dans le dossier database/information , où tous les fichiers de table doivent être séparés en ordre de création ASC.
Comme pour la création de table, vous devez également définir les méthodes de haut en bas .
Exemple de méthode UP:
public function up(): void
{
(new Database('nomeDaTabela'))->insert([
'nomeDaColuna' => 'valor a ser inserido'
]);
}
Exemple de méthode Down:
public function down(): void
{
(new Database('nomeDaTabela'))->delete('id = 1 ');
}
.
| Base | Commande | Argument | Fonction |
|---|---|---|---|
| CLI PHP | -Db | ensemble | Charge les tables database/schema dans la base de données. |
| CLI PHP | -Db | Baisse | Déposez les tables database/schema dans la base de données. |
| CLI PHP | -Db | réinitialiser | Rechargez les tables database/schema dans la base de données. |
| CLI PHP | -Db | charger | Insérez la database/information dans la base de données. |
| CLI PHP | -Db | frais | Supprime database/information de la base de données. |
| Base | Commande | Argument | Fonction |
|---|---|---|---|
| CLI PHP | -CONSTRUIRE | contrôleur | Crée un nouveau contrôleur dans le dossier app/Controller . |
| CLI PHP | -CONSTRUIRE | modèle | Crée un nouveau modèle dans le dossier app/Model/Entity . |
| CLI PHP | -CONSTRUIRE | tableau | Crée un nouveau tableau dans le dossier database/schema . |
Utilitaire: pour faciliter la tâche si vous mettez l' argumento:diretorio sera créé un nouveau fichier renommé.
.
Les itinéraires de framework sont dans le dossier routes d'application.
Exemple de rond commun Get:
$obRouter->get('/url/exemplo', [
function($request) {
return new Response(200, PagesHomeController::get($request));
}
]);
Exemple d'itinéraire dynamique de put:
$obRouter->put('/url/exemplo/{id}', [
function($request, $id) {
return new Response(200, PagesHomeController::edit($request, $id));
}
]);
Exemple de rota avec post middleware:
$obRouter->post('/url/exemplo', [
'middlewares' => [
'basic-auth'
],
function($request) {
return new Response(200, PagesHomeController::set($request));
}
]);
.
Les réquisitions ont certaines méthodes qui peuvent être accessibles par Controller par défaut:
Comment accéder à ces méthodes?
Exemple de GetPostVars:
public function metodoExemplo(Request $request): void
{
$request->getPostVars();
}
.
Les modèles doivent être à l'intérieur du dossier app/Model/Entity .
Chaque modèle a 4 méthodes par défaut:
Déclaration d'une classe de modèle: Chaque modèle doit être généré pour contenir un tableau spécifique.
Exemple de classe:
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;
}
}
Exemple de création de méthode:
public function create(): bool
{
$this->id = (new Database('nomeDaTabela'))->insert([
'nomeDaColuna' => $this->atributoDaClasse
]);
return true;
}
Exemple de méthode de mise à jour:
public function update(): bool
{
return (new Database('nomeDaTabela'))->update('nomeDaColuna = '.$this->atributoDaClasse, [
'nomeDaColuna' => $this->atributoDaClasse
]);
}
Exemple de méthode de suppression:
public function delete(): bool
{
return (new Database('nomeDaTabela'))->securityDelete('nomeDaColuna = '.$this->atributoDaClasse);
}
Exemple Get Method:
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);
}
.
Le middleware est les intermédiaires de l'itinéraire et figurent dans le dossier app/Http/Middleware de l'application, ils sont configurés dans le fichier include/app.php où il faut spécifier un seul nom pour chaque middleware.
Tous les middleware doivent avoir une méthode par défaut:
Exemple 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);
}
}
Réglage du middleware:
MiddlewareQueue::setMap([
'middleware-exemplo' => AppHttpMiddlewareMiddlewareExemplo::class
]);
.
View sert à rendre les variables déclarées dans le HTML pour être remplacées par le contenu de la base de données.
Exemple de rendu du contenu de la vue:
public static function getPage(): string
{
// diretorio da pasta: resources/view
return View::render('pasta/exemploArquivoHtml', [
'nomeDaVariavel' => $conteudoAlterado
]);
}
.
Les contrôleurs doivent être à l'intérieur du dossier app/Controller .
Chaque contrôleur a 5 méthodes par défaut:
Exemple Get Method:
public static function get(): array
{
$itens = [];
$results = EntityExemplo::getExemplos(); // model Exemplo
while($obExemplo = $results->fetchObject(EntityExemplo::class)) {
$itens[] = [
'nomeDaColuna' => $obExemplo->atributoDaClasse
];
}
return $itens;
}
Exemple de méthode de post:
public static function set(Request $request): bool
{
$vars = $request->getPostVars();
$obExemplo = new EntityExemplo;
$obExemplo->atributoDaClasse = $vars['valorPost'];
$obExemplo->create();
return true;
}
Exemple de méthode de suppression:
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;
}
Le fichier de configuration Framework se trouve dans le dossier includes/app.php de l'application.
Dans le fichier app.php est configuré: