Project grouping overview:
Project grouping is an important mechanism of ThinkPHP. The project grouping function can merge multiple previous projects into one project group. Public files can be reused, and each group can have its own independent configuration files, public files, and language packs. wait.
Taking an ordinary website as an example, if project grouping is not used, the website frontend (the browsing part provided to users) is usually treated as a project. The backend management part of the website may have independent configuration files, CSS files, templates, etc., so it is managed as another project. But in fact, both projects are the content of the website, and they can share some content such as database configuration files and even some model classes and cross-project operations.
Project grouping can well solve the commonality and individuality issues between projects under the same system.
Project grouping configuration:
Perform simple project grouping configuration in the system configuration file (Config/config.php) to enable project grouping.
There are five configurations related to project grouping mode:
Description and examples or suggestions for configuration options:
APP_GROUP_LIST: A list of all names of the project group. If not set, it means that the project grouping mode is not enabled, for example, 'APP_GROUP_LIST'=>'Home,Admin,User,Blog',
DEFAULT_GROUP: The default project group name, the system default is Home, for example, 'DEFAULT_GROUP' =>'Home',
APP_GROUP_DEPR: The delimiter between project groups, the default is . (dot), used for separation in A function, D function and routing configuration, it is recommended to default to
TMPL_FILE_DEPR: The separator between the module and the operation in the template file. The default is /. It is only valid for project group deployment. It is recommended to default. You can use the U method to automatically generate URL
VAR_GROUP: Variable to obtain the project group name, the default is g, for example index.php?g=Admin&m=Index&a=edit, it is recommended to default
When TMPL_FILE_DEPR is configured as _, in terms of Admin group Index module add operation, the corresponding template file is changed from the original:
Tpl/default/Admin/Index/add.html
Changed to:
Tpl/default/Admin/Index_add.html
Through this configuration, the template directory structure is reduced by one directory.
Tip: TMPL_FILE_DEPR is also the delimiter between the grouped language definitions and the language file in the language file.
Among the above configuration options, to enable grouping, APP_GROUP_LIST must be set, and other options must be configured according to the actual situation.
Project grouping personalized configuration:
If you want to add a unique personalized configuration to a grouped project, you can create a directory with the same name as the project group under the configuration directory Conf (the directory naming format is: the first letter of the group name is in uppercase + the remaining letters are in lowercase), and Define a config.php configuration file in the directory. Such as the personalized configuration file of the Admin project:
Conf/Admin/config.php
When there is a config.php file defined in the directory with the group name, every time the group is accessed, the system will automatically load the independent configuration of the group and overwrite the settings of the same options in the public configuration.