annaetwumi / tp
此软件包最新版本(dev-main)没有可用的许可信息。
dev-main
2022-09-09 13:34 UTC
Requires
- symfony/event-dispatcher: ^6.1
- symfony/http-foundation: ^6.1
- symfony/routing: ^6.1
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-09 17:27:57 UTC
README
我们开发的框架可以轻松创建一个网络应用。
先决条件
- PHP 8
- 此框架基于SOLID原则。如果您希望没有异常错误,则在使用时必须遵守这些原则。
此框架包含的外部工具
- Symfony HTTP Foundation:用于管理全局HTTP变量
- Symfony Routing:用于管理路由
- Symfony Event Dispatcher
- PHPUnit:用于测试您的类
架构
TP public index.php src Controller AboutController.php HomeController.php pages about.php home.php tests IndexTest.php vendor toutes les librairies nécessaires composer.json composer.lock readme.md
安装
git clone https://github.com/wumiolabisi/3wa-patterns.git
路由
由于此框架集成了Symfony的Routing组件,我们简化了应用程序中的URL管理。最初,您将有两个默认页面:首页“home”和“关于”页面。这些页面是可选的,但可以作为构建应用程序的模板。
添加新页面
对于与url mon-app.fr/ma-page关联的mon-fichier.php,请按照以下步骤操作
- 在src/pages文件夹中创建您的页面
- 在src文件夹中的routes.php文件中,输入您的文件名以及相应的路由名,如下所示
/* URL AVEC VARIABLE */ $routes->add('nom-fichier', new Route('/ma-page/{var1}', ['var1' => 'valeur par défaut'])); /* URL SIMPLE */ $routes->add('nom-fichier', new Route('/ma-page'));
向页面添加新方法
受Symfony启发,此框架建议每个页面有一个controller,即一个同名的类来管理单个页面。
将controller链接到特定页面
- 在src/Controller文件夹中创建MaPageController.php并编写您的类及其方法。
- 转到src文件夹中的routes.php文件
- 在callable变量中添加您的控制器名称以及要执行的方法
$routes->add('home', new Route('/home/{name}', [ 'name' => 'World', 'callable' => 'App\Controller\AboutController@about' ]));
创建事件
为了处理事件,我们使用了由Symfony设计的Event Dispatcher。从这个组件开始,我们提供了三种类型的Listener
- 在HTTP请求上:app.request
- 在控制器上:app.callable
- 在HTTP响应上:app.response
使用示例
假设我的首页中有一个名为name的变量。默认情况下,这个变量的值将是World。如果我想给这个变量分配另一个值,请在我的index.php文件中使用以下代码
/* ... */ $dispatcher->addListener('app.request', function (RequestEvent $event) { $event->getRequest()->attributes->set('name', 'Mon prénom'); }); /* ... */
测试
此框架默认包含PHPUnit,因此与该单元测试工具兼容。请参阅PHPUnit文档。在初始版本中,您将有一个文件作为测试文件模板。以下是一些可用的方法列表(非详尽)
- 要测试HTTP请求,您可以使用Symfony提供的Request对象。