Application squelette pour démarrer rapidement avec le framework PHP MVC Tekwork.
composer create-project tekwork/skeleton mon-projet
cd mon-projetC'est tout ! Votre projet est prêt. 🎉
mon-projet/
├── app/
│ ├── Controllers/ # Vos contrôleurs
│ │ └── HomeController.php
│ ├── views/ # Vos templates
│ │ ├── layout.php # Layout principal
│ │ ├── home.php # Page d'accueil
│ │ └── errors/ # Pages d'erreur (404, 500)
│ └── bootstrap.php # Configuration des routes
├── public/
│ └── index.php # Point d'entrée
├── log/ # Fichiers de logs
├── vendor/ # Dépendances (auto-généré)
├── config.example.php # Template de configuration
├── config.php # Configuration (créé automatiquement)
└── composer.json
Le fichier config.php est créé automatiquement lors de l'installation depuis config.example.php.
return [
'debug' => true, // ⚠️ false en production !
'error_views_path' => path_it(ROOT, 'app', 'views', 'errors'),
'log_path' => path_it(ROOT, 'log', 'app_errors.log'),
];Important : config.php n'est PAS versionné (dans .gitignore).
server {
listen 80;
server_name mon-projet.local;
root /chemin/vers/mon-projet/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}Le fichier .htaccess est déjà configuré dans /public :
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]Dans app/bootstrap.php :
use Tekwork\Road;
use Tekwork\SecurityPatterns;
// Route avec paramètre
$router->add(
(new Road('article/{:slug}', 'App\Controllers@ArticleController:show', 'article.show'))
->rule('slug', SecurityPatterns::SLUG)
);Dans app/Controllers/ArticleController.php :
<?php
namespace App\Controllers;
use Tekwork\Controller;
use Tekwork\View;
class ArticleController extends Controller
{
public function show(): void
{
$slug = $this->params['slug'];
$view = new View(path_it(ROOT, 'app', 'views', 'article.php'));
$view->add_vars(['slug' => $slug]);
echo $this->render(path_it(ROOT, 'app', 'views', 'layout.php'), $view);
}
}Dans app/views/article.php :
<article>
<h1>Article : <?= htmlspecialchars($slug) ?></h1>
<p>Contenu de l'article...</p>
</article>Éditez les fichiers dans app/views/errors/ :
404.php- Page non trouvée500.php- Erreur serveur
Ces pages sont automatiquement affichées en mode production (debug = false).
- Mettre
debug = falsedansconfig.php - Vérifier que
config.phpest dans.gitignore - Configurer les logs (
log_path) - Échapper toutes les sorties :
htmlspecialchars($var) - Utiliser HTTPS
- Valider les inputs utilisateur
Consultez SECURITY.md du framework pour plus de détails.
- Framework Tekwork : https://github.com/Florian418/tekwork
- Documentation complète : README du framework
- Packagist : https://packagist.org/packages/tekwork/framework
- Issues : GitHub Issues
- Questions : Ouvrez une issue avec le tag
question
Ce projet est sous licence MIT. Voir LICENSE pour plus de détails.
Le framework Tekwork est également sous licence MIT.
Bon développement ! 🚀
Propulsé par Tekwork Framework