This article describes the ThinkPHP project group configuration method with examples. Share it with everyone for your reference, the details are as follows:
Project grouping overview
Project grouping is an important mechanism of ThinkPHP. The project grouping function can merge multiple previous projects into one project. Public files can be reused, but each group can have its own independent configuration files, public files, Language packs, etc.
Take an ordinary website as an example. If project grouping is not used, the frontend of the website (the part provided to users for browsing) 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 effectively solve the commonality and individuality issues between projects under the same system.
Project grouping configuration
Enable project grouping by performing simple project grouping configuration in the system configuration file (Config/config.php).
There are five configurations related to project grouping mode:
Configuration Options | Description | Examples or suggestions |
---|---|---|
APP_GROUP_LIST | List of all names of the project group. If not set, it means that the project grouping mode is not enabled | 'APP_GROUP_LIST'=>'Home,Admin,User,Blog', |
DEFAULT_GROUP | The default project group name, the system default is Home | 'DEFAULT_GROUP' =>'Home', |
APP_GROUP_DEPR | The separator between project groups, the default is . (dot), used for separation in A function, D function and routing configuration | Recommended default |
TMPL_FILE_DEPR | The separator between the module and the operation in the template file, the default is /, only valid for project group deployment | It is recommended to default, you can use the U method to automatically generate the URL |
VAR_GROUP | Variable to get the project group name, the default is g | index.php?g=Admin&m=Index&a=edit, it is recommended to default |
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.
Personal configuration of project groups
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 capitalized and the remaining letters are 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 of 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.
Readers who are interested in more thinkPHP-related content can check out the special topics on this site: "ThinkPHP Getting Started Tutorial", "ThinkPHP Common Methods Summary", "Smarty Template Basic Tutorial" and "PHP Template Technology Summary".
I hope this article will be helpful to everyone’s PHP programming based on the ThinkPHP framework.