此软件包最新版本(dev-main)没有可用的许可信息。

dev-main 2022-09-09 13:34 UTC

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,请按照以下步骤操作

  1. 在src/pages文件夹中创建您的页面
  2. 在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链接到特定页面

  1. 在src/Controller文件夹中创建MaPageController.php并编写您的类及其方法。
  2. 转到src文件夹中的routes.php文件
  3. 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对象。