ThinkPHP\Common文件夹中的conventionphp中是tp的核心配置文件,不能乱动,如果要想更改里面的配置,在Conf 文件夹里面的configphp可以配置,可以这样写
<php
return array(
'DB_TYPE' => 'mysql',// 数据库类型
'DB_HOST' => '127001',// 数据库服务器地址
'DB_NAME' => 'thinkphp',// 数据库名称
'DB_USER' => 'root',// 数据库用户名
'DB_PWD' => '123',// 数据库密码
'DB_PREFIX' => 'tp_',// 数据表前缀
'DB_CHARSET' => 'utf8',// 网站编码
'DB_PORT' => '3306',// 数据库端口
'APP_DEBUG' => false,// 开启调试模式
);
这个应该需要自己创建。
准备工作
首先从官方下载ThinkPHP50,下载后文件结构如下:
只保留thinkphp目录其他的所有目录及文件一并删除(可以先转移到其他地方,以备后续使用)
现在就开始生成项目需要目录
thinkphp32创建目录貌似简单,但是thinkphp50却更加灵活。不禁想起了良才是把复杂的事情变简单;庸才是把简单的事情变复杂;蠢材是把简单的事情变得更简单,复杂的事情变得更复杂。
1创建入口文件indexphp,虽然官方强调入口文件位置,可以随意放置,但是为了便于学习,还是放在根目录下
[php] view plain copy
// 应用入口文件
define('APP_PATH', 'application/'); // 定义项目路径,和之前32版本没有区别
define('APP_AUTO_BUILD',true); //开启自动生成
define('APP_DEBUG', true);// 开启调试模式
define('MODULE','module');
// 加载框架引导文件
require 'thinkphp/startphp';
// 执行应用
\think\App::run();
其实我个人觉得,TP官方为啥不把,程序的执行\think\App::run(); 放置在startphp 目录呢最后,发现原来TP50引入了一个define('APP_AUTO_RUN', true);常量,当在indexphp页面定义了改常量,项目就会自动执行,不需要添加\think\App::run();
2创建项目名与buildphp文件
个人感觉thinkphp50做的不好的一点就是上面定义的项目文件夹需要自己创建,究其原因,因为里面要放置项目创建配置文件buildphp。但是为啥TP官方不把buildphp放置在根目录下呢?然后自动生成application文件夹呢?在这一点我觉得TP32做的就比50好。
现在来讨论一下buildphp,官方默认的bulidphp内容如下,现在来讨论一下
[php] view plain copy
return [
// 生成运行时目录
'__dir__' => ['runtime/cache', 'runtime/log', 'runtime/temp', 'runtime/template'],
'__file__' => ['commonphp'],
// 定义index模块的自动生成
'index' => [
'__file__' => ['commonphp'],
'__dir__' => ['behavior', 'controller', 'model', 'view'],
'controller' => ['Index', 'Test', 'UserType'],
'model' => [],
'view' => ['index/index'],
],
// 。。。 其他更多的模块定义
];
可以给每个模块定义需要自动生成的文件和目录,以及MVC类。
__dir__ 表示生成目录(支持多级目录)
__file__ 表示生成文件(不定义默认会生成 configphp 文件)
controller 表示生成controller类
model表示生成model类
view表示生成html文件(支持子目录)
自动生成以APP_PATH 为起始目录, __dir__ 和 __file__ 表示需要自动创建目录和文件,其他的则表示
为模块自动生成。
模块的自动生成则以 APP_PATH'模块名/' 为起始目录。
最后直接运行indexphp文件即可。
用Widget,渲染输出是可以做到的
在Lib/Widget/下新建一个文件命名为TestWidgetclassphp文件:
代码
<php
class TestWidget extends Widget{
public function render($data) {
return $this->renderFile("test_page",$data);
}
}
在Lib/Widget/Test/下新建一个文件test_pagehtml把你上面从数据库中读的代码放入test_pagehtml中。
然后在其它模板中这样调用{:W('Test',array())}
这只是一个基本例子。具体项目中你可以把你从数据库读出的代码动态保存入Lib/Widget/Test/test_pagehtml中。在调用 return $this->renderFile("test_page",$data);
遇到的情景:TP框架中,如果一个SQL语句是错误的,当执行该SQL时页面就会报错结束执行,所以也就无法用$this->getLastSql()打印出错误的语句。
问题:想要查看那条错误的SQL语句是怎样的
解决方法:如图,在Driverclassphp中parseSql函数中加上一句 echo $sql'<br />'; 就可以在页面中打印出所有执行的SQL语句(不管是正确的还是错误的都会打印出来)!
当应用量多的程序时,tp5框架还能用。
tp51 是有多应用功能的,所以当应用量多的程序时,tp5框架是还能用的。
在tp50 的时候,可以创建多个应用,public 下创建目录。设置app_path ,就可以实现了。
thinkphp 50 为API开发而设计的的高性能框架,是与以往thinkphp50以下版本大不相同的新型框架,病对以颠覆和重构版本,采用全新的架构思想,引入了更多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载。
thinkphp 50 支持composer,并针对API开发做了大量的优化,包括路由、日志、异常、模型、数据库、模板引擎和验证等模块都已经重构。
1:无法访问,添加如下的配置:
2:模块不存在:captcha
发现vender目录下面没内容
我们使用composer install安装我们在开发时候的库,
但是报了如下错误:
是由于composer的源导致的,我们做一个配置:
网上说有三个镜像:
更换成阿里镜像:composer config -g repopackagist composer >
以上就是关于thinkphp项目的配置文件夹是哪个全部的内容,包括:thinkphp项目的配置文件夹是哪个、thinkphp5.0 怎么生成index.tpl、tp5 用户自己写一个标签然后存入数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)