The domestic framework thinkPHP is an MVC framework. This framework initially simulates JAVA's struts framework and uses a single entry file to simulate it. JAVA's filter uses action to simulate STRUTS controller ACTION, so why in his MVC, M is model, V is view, and control is action.
In version 3.2.3, control was changed to C, which is also more formal, because springMVC in the JAVA world has become popular. The control used by spring no longer uses the definition of action. In fact, action represents control itself. It’s misleading, the control is C, why is there an aciton, it’s confusing.
The most difficult thing to understand about thinkphp is its access method. The explanation in the official document is a bit misleading. According to the official document, there must be an error because the official document does not explain it clearly!
The installation of thinkphp is actually very simple. Just require its main program file to generate a series of directories, but what is the relationship between the URL and its control and tpl? The official document is so vague that anyone who has used JAVA will be fooled by the official document until they vomit blood!
Can the official document be clearer? ?
After actual use, I summarized the following points:
1. Install thinkphp:
Create admin.php or any other name in the same directory as the main program thinkPHP
Copy code The code is as follows:
//Define project name and path
define('APP_NAME', ''); //When the name is space-time, the generated folder is not prefixed
define('APP_PATH', './admin/');//This means generating the admin directory in the same directory as the main program THINKPHP
define('APP_DEBUG', true);//Start editing mode, force compilation of files, no caching
//Load framework entry file
require( "../ThinkPHP/ThinkPHP.php");//Main program entry file
2, file directory:
The automatically generated file directory is
common: a place to write functions
conf: configuration file, such as configuring database connection address
lang: language package, internationalization
lib: action and model are all here, which is a more important place. It is a completely different concept from JAVA’s lib which is a JAR package
runtime: runtime cache file
tpl: template, which is an html file
3, access method:
URL: localhost/thinkphp/admin.php?m=Show&a=add
Explanation: Local/project directory/single entry file just created? model=class name&action=method name
Meaning: Enter the add method in the Show class in the single entry file admin.php
Emphasis: The class name starts with an uppercase letter, and the lowercase letters will not be found. This troubled me. I worked on it all afternoon, and it turned out that I only recognized the uppercase class names, but not the lowercase ones
infopath style URL: localhost/thinkphp/admin.php/Show/add
Explanation: Same as the default, except that M A is not written out
4. Write classes and methods:
The author of thinkphp must be a person who likes to toss and is a perfectionist, so he thought of this way to control the program. The entire program is based on the action class. An action class is equivalent to a page, and the The method is to perform operations related to this page, such as adding, deleting, modifying, and checking. This is in line with the way Chinese people think, but the reusability is not high.
Write file: lib/action/ShowAction.class.php
Copy code The code is as follows:
//Show is the class name, Action is just a recognition aid, it must be written, but it can be ignored when calling. Remember to capitalize it. If you write it in lowercase, it will also change it to uppercase for you, so that you can't find the module of show in lowercase. m=Show
class ShowAction extends Action {
//add is the action method, a=add
Public function add(){
//Output page CC, it automatically loads the cc.html file under the Show file in the default TPL directory. If there is no cc here, add.html with the same method name will be loaded. If there is neither cc.html nor add.html, an error will be reported
$this->display('cc');
}
}
5, write template:
Loading templates are mentioned above, let’s write one now:
tpl/Show/cc.html
Copy code The code is as follows:
A normal HTML file
The above is the entire content of this article, I hope you all like it.