thinkphp学习笔记

文章更新

  1. 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这个目录下没有对应的缓存类型文件,奇怪。

参考文章

1. 2.