1、入口文件
2、资源访问 网站的资源文件访问不会影响正常的操作访问,只有当访问的资源文件不存在的时候才会解析到入口文件,一般就会提示模块不存在的错误。网站的资源文件一般放入 public ├─index.php 应用入口文件 ├─static 静态资源目录 │ ├─css 样式目录 │ ├─js 脚本目录 │ └─img 图像目录 记住,千万不要在 访问资源文件的URL路径是: http://tp5.com/static/css/style.css http://tp5.com/static/js/common.js http://tp5.com/static/img/picture.jpg 当然,你也可以更改资源文件的URL路径,在config.php中配置如下: // 视图输出字符串内容替换 'view_replace_str' => [ '__static__' => '/static' ], 访问资源文件的改变后URL路径是: <link href="__static__/css/bootstrap.css" rel="stylesheet"> 3、调试模式
开发完成后,我们实际进行项目部署的时候,修改应用配置文件( // 关闭调试模式 'app_debug' => false, 为了安全考虑,避免泄露你的服务器WEB目录信息等资料,一定记得正式部署的时候关闭调试模式。 4、控制器 如果要访问一个驼峰命名的控制器,例如我们把上面的例子改成一个 <?php namespace app\index\controller; class HelloWorld { public function index($name = 'World') { return 'Hello,' . $name . '!'; } } 默认情况下正确的方法是使用下面的URL进行访问 http://tp5.com/index.php/index/hello_world 下面的访问地址是错误的 http://tp5.com/index.php/index/HelloWorld 当然也可以区分大小写访问,在config.php文件中,设置了关闭url自动转换如下 'url_convert' => false,
5、URL访问
http://domainName/index.php/模块/控制器/操作 模块在ThinkPHP中的概念其实就是应用目录下面的子目录,而官方的规范是目录名小写,因此模块全部采用小写命名,无论URL是否开启大小写转换,模块名都会强制小写。 应用的 <?php namespace app\index\controller; class Index { public function index() { return 'index'; } public function hello($name = 'World') { return 'Hello,' . $name . '!'; } } 如果我们直接访问入口文件的话,由于URL中没有模块、控制器和操作,因此系统会访问默认模块(index)下面的默认控制器(Index)的默认操作(index),因此下面的访问是等效的: http://tp5.com/index.php http://tp5.com/index.php/index/index/index 如果要访问控制器的hello方法,则需要使用完整的URL地址 http://tp5.com/index.php/index/index/hello 6、隐藏入口 可以去掉URL地址里面的入口文件 以 <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule> 如果用的 <IfModule mod_rewrite.c> 接下来就可以使用下面的URL地址访问了 http://tp5.com/index/index/index http://tp5.com/index/index/hello 7、根命名空间(类库包) 根命名空间是一个关键的概念,以上面的 系统内置的几个根命名空间(类库包)如下: 如果需要增加新的根命名空间,有两种方式:注册新的根命名空间或者放入 请注意本手册中的示例代码为了简洁,如无指定类库的命名空间的话,都表示指的是 Route::get('hello','index/hello'); 请自行添加 \think\Route::get('hello','index/hello'); 8、common公共文件 其中 // 应用公共文件 //增加一个新函数 function my_fun(){ return '应用公共文件'; } 调用直接{:my_fun()}可以了 |
|