ThinkPhp5問世已近一年,然而仍然有不少的坑,而後不禁得想起Laravel的好了。固然TP5仍然須要時間去作得更好。今天要說的確是ThinkPhp3。thinkphp3是個成熟的框架。java有maven,php有packagist,然而packagist裏的庫於thinkphp3確是水土不服,我想這就是thinkphp5的誕生契機之一吧。我是個懶人,有現成的庫能夠使用,我以爲不必再去寫,否則公共庫的意義就不大了至於爲何會水土不服,大概就是autoload的方式不同,關於這點且不深究。php
進入composer庫,查找關鍵字phpspreadsheet,找到該庫在github上的地址,而後down下來
java
解壓到本地,找到目錄下面的src下面的phpspreadsheet文件夾
git
先看一眼這個文件夾下隨便一個php文件的namespace
github
再在Thinkphp的框架目錄下面Library/Vendorc建立PhpOffice文件夾,而後將down下來的庫裏xxx/src/目錄下的PhpSpreadsheet文件夾整個copy到PhpOffice文件夾下thinkphp
最後只須要修改copy過來文件的後綴就能夠了。下面是腳本composer
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庫裏的實例maven
以上方法並非對全部的packagist裏面的庫都適用,各位需隨機應變吶thinkphp5