reportico工具和Yii整合,并解决Projects area does not exist - cannot write project 错误
Reportico工具是一个PHP开源的报表工具。可以YII、Laravel等流行的PHP框架进行整合。
首页:
首页如下:
Screen clipping taken: 11/20/2017 3:54 PM
然后我们想要和PHP整合,那么可以看下面的这个链接:
Screen clipping taken: 11/20/2017 3:54 PM
选择 "YII Reportico Modules"来进行下载安装。
我本地安装使用的是YII2,所以我点击了"YII2 module"按钮,进入到下面的一个引导页面:
http://www.reportico.org/yii2/web/index.php/site/index
看完指导信息后,提供了一个链接,告诉我们如何安装YII 的Reportico Module:
http://www.reportico.org/yii2/web/index.php/site/installation
接下来是我参考安装指导的步骤:
-
进入到YII的根目录,修改composer.json文件,加入下面的内容:
"require": {
"reportico/yii2-reportico": "dev-master"
},
Screen clipping taken: 11/20/2017 4:05 PM
-
接下来,执行下面的命令,来更新module
- composer update
-
接下来,把这个Module配置到YII框架中。
-
修改config目录下的web.php文件,加入下面的内容:
'reportico' => [
'class' => 'reportico\reportico\Module' ,
'controllerMap' => [
'reportico' => 'reportico\reportico\controllers\ReporticoController',
'mode' => 'reportico\reportico\controllers\ModeController',
'ajax' => 'reportico\reportico\controllers\AjaxController',
]
],
上面的配置方式是Reportico的官网告诉的方法,但是我发现这样是行不通的。。。所以我研究了Yii框架Module加载的方法之后,修改了这段代码,改为下面的方式把这个Module配置进去,代码如下:
然后访问这个Module,通过下面的URL(我自己环境的):
http://localhost/DemoPage/Yii/basic/web/index.php?r=reportico
如图:
-
-
在这个页面中我们需要设置下Admin的密码:
我这里设置为admin123
但是,因为框架中有BUG,导致在windows环境下安装的时候,可能会报下面的这个错误:Projects area does not exist - cannot write project
我看了代码,可能是和传入的目录既有正斜杠也有反斜杠导致,所以加入了如下代码:
改动代码:
文件:reportico.php 文件,方法:save_admin_password
修改代码如下:
其实就是把$proj_parent = find_best_location_in_include_path( $this->admin_projects_folder); 换成 $proj_parent = find_best_location_in_include_path("projects");
因为之前的$this->admin_projects_folder 是一个绝对路径,所以会导致底层的方法出现一些问题,找不多对应的目录。所以改为现在这种方式可以找到。
-
接下来进入到登录页面:
-
输入刚刚的admin密码admin123,去登录。
-
-
登录成功后,进入管理页面
- 点击 Create A New Project,就可以创建一个新的项目了。