PhalconPHP - 移动与控制器相关的视图文件夹
PhalconPHP - Moving the controller-related view folders
我正在使用 PhalconPHP 框架开发一个应用程序,随着我的应用程序变得越来越大,我的视图文件夹变得相当混乱。
目前我的 views
文件夹如下所示:
views_layouts
|_index_..
|_blog_..
|_news_..
|_etc_..
有什么方法可以将我的控制器相关文件夹移动到一个名为 pages
的单独文件夹中,这样我的目录结构就像这样吗?
views_layouts_index.volt
| |_blog.volt
| |_news.volt
| |_etc.volt
|
|_pages_index_..
|_blog_..
|_news_..
|_etc_..
我想你可以把你的文件夹结构改成这样。
layouts
| controller_name.volt
| other_controller.volt
controller_name
| action_name.volt
| other_action.volt
other_controller
| action_name.volt
| other_action.volt
在布局文件夹的文件中,你可以放这样的东西
{% extends "templates/base.volt" %}
{% block title %}Title{% endblock %}{% block content %}
{{ content () }}{% endblock %}
在 templates/base.volt 文件中你可以放这样的东西
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<title>{% block title %}{% endblock %}</title>
</head>
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>
所有这些都应该在视图文件夹中
我可以通过编辑 ControllerBase
class.
自己解决这个问题
// Change the default views directory to /app/views/pages/
$moduleName = $this->dispatcher->getControllerName(); // Eg: blog
$actionName = $this->dispatcher->getActionName(); // Eg: index
$this->view->pick("pages/$moduleName/$actionName"); // Result: "pages/blog/index"
您甚至可以多次调用 pick()
来覆盖控制器中的任何视图。
我正在使用 PhalconPHP 框架开发一个应用程序,随着我的应用程序变得越来越大,我的视图文件夹变得相当混乱。
目前我的 views
文件夹如下所示:
views_layouts
|_index_..
|_blog_..
|_news_..
|_etc_..
有什么方法可以将我的控制器相关文件夹移动到一个名为 pages
的单独文件夹中,这样我的目录结构就像这样吗?
views_layouts_index.volt
| |_blog.volt
| |_news.volt
| |_etc.volt
|
|_pages_index_..
|_blog_..
|_news_..
|_etc_..
我想你可以把你的文件夹结构改成这样。
layouts
| controller_name.volt
| other_controller.volt
controller_name
| action_name.volt
| other_action.volt
other_controller
| action_name.volt
| other_action.volt
在布局文件夹的文件中,你可以放这样的东西
{% extends "templates/base.volt" %}
{% block title %}Title{% endblock %}{% block content %}
{{ content () }}{% endblock %}
在 templates/base.volt 文件中你可以放这样的东西
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<title>{% block title %}{% endblock %}</title>
</head>
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>
所有这些都应该在视图文件夹中
我可以通过编辑 ControllerBase
class.
// Change the default views directory to /app/views/pages/
$moduleName = $this->dispatcher->getControllerName(); // Eg: blog
$actionName = $this->dispatcher->getActionName(); // Eg: index
$this->view->pick("pages/$moduleName/$actionName"); // Result: "pages/blog/index"
您甚至可以多次调用 pick()
来覆盖控制器中的任何视图。