-
laminas中文官方文档
-
1、安装composer工具和git,自行官网下载即可
-
2、使用composer创建laminas项目(速度太慢可以选择阿里云或者腾讯云的镜像)
composer create-project -s dev laminas/laminas-mvc-skeleton /安装路径 // 如果出现安装错误(例如:Your requirements could not be resolved to an installable set of packages 依赖安装错误) // 可以进入项目目录下,然后修改composer.json文件中("description": "Laminas MVC Skeleton Application",)后添加或者修改选项配置("minimum-stability": "dev","prefer-stable": true,),执行以下命令安装缺失的依赖项文件 composer update // 以上解释:在项目的 composer.json 文件中设置 minimum-stability 为 dev,是为了允许 Composer 安装开发版的包。同时,使用 "prefer-stable": true 以确保当稳定版可用时,Composer 会优先选择稳定版。 // 配置 composer 镜像 // 阿里云 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ // 腾讯云 composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/ // 还原配置 composer config -g --unset repos.packagist
-
3、cd切换到laminas项目目录下并启动内置web开发服务器(在项目路径的cmd下):
php -S 0.0.0.0:8080 -t public public/index.php // 或 php -S 0.0.0.0:8080 -t public public/ // 或 php -S 127.0.0.1:8080 -t public public/index.php // 或 php -S localhost:8080 -t public public/index.php
-
或者选择使用xampp自带的apache服务访问(laminas项目放在htdocs目录下,这样才能被Apache服务自动加载到)
创建新的控制器(正式使用):
-
在 项目目录/module/Application/src/Controller/ 下创建新的控制器文件:TestController.php
<?php namespace Application\Controller; use Laminas\Mvc\Controller\AbstractActionController; use Laminas\View\Model\ViewModel; class TestController extends AbstractActionController { public function indexAction(): ViewModel { return new ViewModel(); } }
-
在 项目目录/module/Application/view/application/ 下创建目录和文件 test/index.phtml
<?php echo "创建新页面控制器成功";
-
在 项目目录/module/Application/config/module.config.php文件中修改路由规则
<?php // PHP 中的严格模式声明,表示启用严格类型检查 declare(strict_types=1); //定义了当前文件中的代码属于 Application 命名空间。 namespace Application; // 引入Laminas\Router\Http\Literal 类,用于定义基于 URI 字符串的路由规则。 use Laminas\Router\Http\Literal; //引入了 Laminas\Router\Http\Segment 类,用于定义基于 URI 片段的路由规则。 use Laminas\Router\Http\Segment; //引入了 Laminas\ServiceManager\Factory\InvokableFactory 类,用于创建控制器的工厂 use Laminas\ServiceManager\Factory\InvokableFactory; //定义了一个数组,包含了模块的路由、控制器和视图管理配置 return [ // 定义了路由配置,包括不同路由规则的设置。 'router' => [ // 定义了具体的路由规则 'routes' => [ // 定义了一个名为 home 的路由规则,使用Literal类型(适合用于精确匹配固定的URI路径,不包含变量部分),表示根路径 / 的访问 'home' => [ 'type' => Literal::class, 'options' => [ 'route' => '/', 'defaults' => [ 'controller' => Controller\IndexController::class, 'action' => 'index', ], ], ], // 定义了一个名为 application 的路由规则,使用Segment类型(适合用于定义包含变量的动态路径,可以根据变量值执行不同的操作),表示 /application 路径的访问 'application' => [ 'type' => Segment::class, 'options' => [ 'route' => '/application[/:action]', 'defaults' => [ 'controller' => Controller\TestController::class, 'action' => 'index', ], ], ], // 新增路由规则,定义了一个名为 test 的路由规则,使用 Literal 类型,表示 /test 路径的访问。 'test' => [ 'type' => Literal::class, 'options' => [ 'route' => '/test', 'defaults' => [ 'controller' => Controller\TestController::class, 'action' => 'index', ], ], ], ], ], // 定义了控制器配置,包括控制器类和工厂的映射 'controllers' => [ // 定义了控制器类和对应的工厂类,用于实例化控制器 'factories' => [ Controller\IndexController::class => InvokableFactory::class, Controller\TestController::class => InvokableFactory::class, ], ], // 定义了视图管理配置,包括视图模板的设置和路径。 'view_manager' => [ // 设置是否显示未找到原因的错误信息 'display_not_found_reason' => true, // 设置是否显示异常信息 'display_exceptions' => true, // 设置文档类型为 HTML5。 'doctype' => 'HTML5', // 设置未找到页面的模板。 'not_found_template' => 'error/404', // 设置异常页面的模板 'exception_template' => 'error/index', // 定义了模板文件的映射关系,将模板文件名映射到实际文件路径 'template_map' => [ 'layout/layout' => __DIR__ . '/../view/layout/layout.phtml', 'application/index/index' => __DIR__ . '/../view/application/index/index.phtml', 'error/404' => __DIR__ . '/../view/error/404.phtml', 'error/index' => __DIR__ . '/../view/error/index.phtml', ], // 定义了模板文件的路径栈,用于查找模板文件的路径 'template_path_stack' => [ __DIR__ . '/../view', ], ], ];
-
访问本地配置的路由规则,查看是否正确显示:https://localhost:82/laminasProduct/public/test
-
显示结果:
到此,已经完成了基础内容,也了解了如何创建一个自定义路由控制器并且映射页面到网站。
进阶(cookie,session,国际化自动翻译等)实战内容正在准备中…