最近在学ThinkPHP,过程当然不是一番风顺,一两天之后,总算有点感觉了:):
我初始化下我的项目目录结构:
------/www/
----------/www.myapp.com/
-------------------------/myadmin/<!--项目后台-->
/ThinkPHP/<!--TP文件夹-->
/index.php<!--前台入口文件-->
/admin.php<!--后台入口文件-->
/myapp/<!--项目前台-->
重点是myapp的配置,myamin原理跟myapp一样一样的
我不想按照官网的那样,把Public文件夹放根目录,我想一个应用对应该应用的Public,也就是说,对于,myapp,我的Public的路径是这样的:
/www/www.myapp.com/myapp/Public/
/www/www.myapp.com/index.php的配置如下:
<?php //引入框架统一入口 define('APP_DEBUG',true); define('THANK_PATH','./ThinkPHP/'); define('APP_PATH','./myapp/'); define('APP_NAME','myapp'); require(THANK_PATH.'ThinkPHP.php'); ?>
/www/www.myapp.com/myapp/index.php配置如下
<?php //定义项目名称和路径 define('APP_NAME', 'myapp'); define('APP_PATH', './'); // 加载框架入口文件 require( "../ThinkPHP/ThinkPHP.php");
/www/www.myapp.com/myapp/Config/config.php配置如下:
<?php //array('__PUBLIC__'=>'/myapp'这块配置一定要是'/myapp' //如果配置的是array('__PUBLIC__'=>'myapp' //利用http://www.myapp.com/myapp/访问会出现加载不了CSS,js等 //'/myapp'是回myapp上一层路径,另外一个'myapp'是当前路径 return array( 'DB_TYPE'=>'mysql', 'URL_MODEL'=>1, 'DB_HOST'=>'localhost', 'DB_NAME'=>'myapp', 'DB_USER'=>'root', 'DB_PWD'=>'', 'DB_PORT'=>'3306', 'DB_PREFIX'=>'ma_', 'URL_MODEL'=>0, 'TMPL_PARSE_STRING'=>array('__PUBLIC__'=>'/myapp'), ); ?>
其他的
/www/www.myapp.com/myapp/Lib/Action/Index.class.php的Index()方法里,$this->display();就可以调用模板了...
比如Index模块的模板应该如下:
/www/www.myapp.com/myapp/Tpl/Index/index.html
/www/www.myapp.com/myapp/Tpl/Index/header.html
/www/www.myapp.com/myapp/Tpl/Index/footer.html
header里面可以通过以下语句调用js,css:
<link href="__PUBLIC__/Public/css/a.css" rel="stylesheet" type="text/css" /> <script src="__PUBLIC__/Public/js/a.js" type="text/javascript"></script> <script src="__PUBLIC__/Public/js/b.js" type="text/javascript" ></script>
index.html引入header.html:<include file="header"/>
其他模块,比如添加(add)
/www/www.myapp.com/myapp/Lib/Action/Add.class.php的Index()方法里,$this->display();就可以调用模板了...
比如Index模块的模板应该如下:
/www/www.myapp.com/myapp/Tpl/Add/index.html
值得一提的是,在这个index.html里面可以调用Index模块的header.html:<include file="Index:header">
差不多就这些了,linux下貌似对大小写敏感,大家注意!