文章更新
- 20160923-初次成文
为什么会有这篇文章
没啥可说的.
安装
我主要是利用了小微OA的程序来当做目标,放在了自己htdocs下xiaowei.com来当做目录,项目官方网址是小微OA,下载地址是https://git.oschina.net/smeoa/xiaowei.git,直接`git clone https://git.oschina.net/smeoa/xiaowei.git xiaowei.com`即可。
THINKPHP 3.23基本文件下载地址,点开就自动下载了,我放在了peipei.com目录下,教程主要参考了THINKPHP官方的3.23快速入门,地址。
关闭MYSQL数据库的严格模式
SET @@GLOBAL.sql_mode="NO_AUTO_Create_USER,NO_ENGINE_SUBSTITUTION";
URL-MODE的影响
这个发现还是挺重要的,比如小微OA使用的URL_MODE=1,同样的文件结构,如果使用0的话,就无法正确访问。
心得
小微OA的Controller和Model两个模块,都复用了各自的基类,比如VIEW是复用了HomeController类,而Model则是复用了CommonModel类。
写法也比较典型
基本的Controller类,名字是HomeController.class.php,
<?php
namespace Home\Controller;
use Think\Controller;
class HomeController extends Controller{
...
}
?>
其他复用类,就会从这个HomeController派生出来,比如IndexControoler.class.php
<?php
namespace Home\Controller;
class IndexController extends HomeController{
...
}
?>
需要注意的是,派生出来的Controller,不再有use Think\Controller这句话
遇到的一些错误
非法操作:login
错误位置
FILE: /Users/wangyi/BitTorrent Sync/Sync Gits/php/peipei.com/ThinkPHP/Library/Think/Controller.class.php LINE: 170
TRACE
\#0 /Users/wangyi/BitTorrent Sync/Sync Gits/php/peipei.com/ThinkPHP/Library/Think/Controller.class.php(170): E('\xE9\x9D\x9E\xE6\xB3\x95\xE6\x93\x8D\xE4\xBD\x9C:lo...')
\#1 [internal function]: Think\Controller->__call('login', '')
\#2 /Users/wangyi/BitTorrent Sync/Sync Gits/php/peipei.com/ThinkPHP/Library/Think/App.class.php(114): ReflectionMethod->invokeArgs(Object(Home\Controller\PublicController), Array)
\#3 /Users/wangyi/BitTorrent Sync/Sync Gits/php/peipei.com/ThinkPHP/Library/Think/App.class.php(204): Think\App::exec()
\#4 /Users/wangyi/BitTorrent Sync/Sync Gits/php/peipei.com/ThinkPHP/Library/Think/Think.class.php(120): Think\App::run()
\#5 /Users/wangyi/BitTorrent Sync/Sync Gits/php/peipei.com/ThinkPHP/ThinkPHP.php(97): Think\Think::start()
\#6 /Users/wangyi/BitTorrent Sync/Sync Gits/php/peipei.com/index.php(27): require('/Users/wangyi/B...')
\#7 {main}
解决办法
检查 ThinkPHP/Library/Think/Cache 目录下,是否存在Driver目录,我下载的3.23版本的THINKPHP这个目录下没有对应的缓存类型文件,奇怪。