前言
ThinkPhp5问世已近一年,然而仍然有很多的坑,然后不由得想起Laravel的好了。当然TP5仍然需要时间去做得更好。今天要说的确是ThinkPhp3。thinkphp3是个成熟的框架。java有maven,php有packagist,然而packagist里的库于thinkphp3确是水土不服,我想这就是thinkphp5的诞生契机之一吧。我是个懒人,有现成的库可以使用,我觉得没必要再去写,不然公共库的意义就不大了至于为什么会水土不服,大概就是autoload的方式不一样,关于这点且不深究。
干货
进入composer库,查找关键字phpspreadsheet,找到该库在github上的地址,然后down下来
解压到本地,找到目录下面的src下面的phpspreadsheet文件夹
先看一眼这个文件夹下随便一个php文件的namespace
再在Thinkphp的框架目录下面Library/Vendorc创建PhpOffice文件夹,然后将down下来的库里xxx/src/目录下的PhpSpreadsheet文件夹整个copy到PhpOffice文件夹下
最后只需要修改copy过来文件的后缀就可以了。下面是脚本
public function change_suffix(){ $basepath = realpath(THINK_PATH)."\\"; $path = 'Library\\Vendor\\PhpOffice'; $all = array(); $this->getFileInDir($basepath.$path,$all); foreach ($all as $one){ if(strpos($one, 'class') === false){ $new_name = str_replace('.php', '.class.php', $one); rename($one, $new_name); } } } private function getFileInDir($dir,&$all){ if(is_dir($dir)){ $ss = scandir($dir); unset($ss[1]); unset($ss[0]); foreach ($ss as $s){ $sdir = $dir.'\\'.$s; if(is_dir($sdir) && $s != 'Default'){ $this->getFileInDir($sdir,$all); }else{ $all[] = $sdir; } } } }
最后在config.php文件里面加上
'AUTOLOAD_NAMESPACE' => array(
'PhpOffice' => THINK_PATH.'Library/Vendor/PhpOffice',
),
你就可以用$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
这种方式来new库里的实例
以上方法并不是对所有的packagist里面的库都适用,各位需随机应变呐
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。