fly020212
- fly020212 回答了问题 如何创建一个空项目?
抱歉,最近看的 Yii2,没看仔细就写了,Yii1 有几个月没用了,忘记了
- fly020212 回答了问题 Yii2.0加载自己的class
首先,要明白 vendor 目录的含义,这个目录基本是放第三方类库的,yii 框架放在这里,你使用的 github 上的类库通过 composer 安装的也放在这里,但,你的产品代码,是不需要放在这里的,也不应该放在这里
第二,虽然,我们的代码用了
namespace app\XXX\XXX
定义 namespace,但是,这个app
目录对应的就是'basePath' => dirname(__DIR__),
目录,namespace app\vendor\class
对应的是basePath/vendor/class
目录,当然,不应该放在 vendor 目录下
举个例子namespace app\models
是目录basePath/models
<?php namespace app\models; class User {};
这个 User 的 类名,是
\app\models\User
, 文件是basePath/models/User.php
最后,以上的前提是,你对 php 的 namespace 有大概的了解
- fly020212 回答了问题 如何创建一个空项目?
自己写个 composer.json,require yii2,update ,按照 yii basic 的模板,创建目录,把 web/index.php 拷过来,运行,调试
Yii2 有 import ?
本来考虑用 ReflectionClass 自己写权限获取方法和方法注释的 不过YII2 里面 用ReflectionClass 报错啊
$func = new ReflectionMethod('AdminController','actionIndex');$tmp = $func->getDocComment(); var_dump($tmp);
报下面的错误啊
Class 'backend\controllers\ReflectionMethod' not found$func = new \ReflectionMethod('AdminController','actionIndex');
- fly020212 回复了话题 yii2.0安装受阻
每次更新的时候加上 --prefer-dist 应该情况会好点
http://wenda.golaravel.com/question/18 这里有 composer 的国内镜像,不清楚好用不,没试过
悲催呀,刚写好的,预览状态下,一个回退键,就没有了 。。。
重写一遍了
ActiveRecord 的 $attributes 属性是私有的,是不能被 json_encode 编码的,所以 encode 后是 {} 不奇怪
你使用了namespace,所以如果你
$obj = new stdClass
,找的是你 namespace 下的 stdClass 类,这个应该肯定是不存在的,应该用$obj = new \stdClass
就ok了,顺便提一句,如果用到了 Exception, 也是要特别注意的try { ... } catch (\Exception $e) {...}
,这个样子才能像预料中的那样工作yii\helpers\Json 是可以 encode models 数据的,对这些数据有特殊的处理,可以参看源代码
\yii\helpers\Json::encode(Model::findAll());
这样子就ok了