1.index.php是每个应用的入口文件,它运行时会调用默认应用模块即home模块里的控制器。
可以通过在入口文件添加
define('BIND_MODULE','Admin');//增加应用模块
注意:此操作同时会绑定Admin为默认模块。修改配置文件默认模块也不会起作用,所以生成模块之后应把这句话删了。
来增加应用模块Admin等.也就是说,如果本来没有此模块,系统会自动在应用文件夹下生成并绑定为默认调用模块,如果有此模块,则会绑定为默认调用模块。
还可以在入口文件里添加代码增加控制器等。
2.thinkphp是通过url设置的参数来访问各个控制器文件中的函数的。
3.手动导入各种类库用import:
// 导入Org类库包 Library/Org/Util/Date.class.php类库
import("Org.Util.Date");
// 导入Home模块下面的 Application/Home/Util/UserUtil.class.php类库
import("Home.Util.UserUtil");
// 导入当前模块下面的类库
import("@.Util.Array");
// 导入Vendor类库包 Library/Vendor/Zend/Server.class.php
import('Vendor.Zend.Server');
对于import方法,系统会自动识别导入类库文件的位置,ThinkPHP可以自动识别的类库包包括Think、Org、Com、Behavior和Vendor包,以及Library目录下面的子目录,如果你在Library目录下面创建了一个Test子目录,并且创建了一个UserTest.class.php类库,那么可以这样导入:
import('Test.UserTest');
其他就必须加上前面的根目录比如Home/
4.当然现在thinkphp完全摒弃了import引入类库的做法,而是使用命名空间来自动加载:
根命名空间是一个关键的概念,以上面的Org\Util\File
类为例,Org
就是一个根命名空间,其对应的初始命名空间目录就是系统的类库目录(ThinkPHP/Library
),Library目录下面的子目录会自动识别为根命名空间,这些命名空间无需注册即可使用。
例如,我们在Library目录下面新增一个My根命名空间目录,然后定义一个Test类如下:
namespace My;
class Test {
public function sayHello(){
echo 'hello';
}
}
Test类保存在 ThinkPHP/Library/My/Test.class.php
,我们就可以直接实例化和调用:
而无需导入。
$Test = new \My\Test();
$Test->sayHello();
Library目录下面的子目录会自动识别为根命名空间,这些命名空间无需注册即可使用
模块中的类库命名空间的根都是以模块名命名,例如:
也就是说有了命名空间,就可以直接实例化了。
5.use的用处是简化类的写法比如:
use Think\Controller;
class IndexController extends Controller {
public function index(){
}
首先是
use Think\Controller;
这样在继承类的时候直接写controller ,否则需要写成\THink\Controller;