https://github.com/yiier/yii2-playground
Yii2各种扩展实验室
https://github.com/yiier/yii2-playground
Last synced: about 2 months ago
JSON representation
Yii2各种扩展实验室
- Host: GitHub
- URL: https://github.com/yiier/yii2-playground
- Owner: yiier
- License: mit
- Created: 2015-04-28T07:28:08.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2016-04-25T02:10:14.000Z (about 9 years ago)
- Last Synced: 2024-04-14T09:58:38.128Z (about 1 year ago)
- Language: PHP
- Size: 132 KB
- Stars: 6
- Watchers: 16
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# yii2-playground
Yii2各种扩展实验室 扩展来自yii官网的 [yii-extensions](http://www.yiiframework.com/extensions/)
只对那些比较重要的扩展进行示例示范,主要针对版本yii2 ,至于yii1中较优秀的扩展,本项目会尝试翻写为2系兼容。
## 项目目的
组员内的技术提高,多看看总是好的,yii官方扩展仓库中有很多扩展都很优秀,如果想自己也写类似的扩展 他们的作品也是最佳范本。
yii本身只解决通用型需求 ,对于领域内的东西 一般由第三方提供:比如我们自己写的yii扩展,或者使用第三方的php类库。现在yii2
是基于composer ,psr风格,所以对于第三方类库(如文件操作库,各种存储驱动 图形图像操作库, httpClient ..等)可以很方便的
集成到yii2项目中来。 也只是需要把你依赖的库添加到composer.json 中 然后composer update 命令下载/更新 即可。常用的库,大家
可以尝试使用zendframework,跟symfony组件库,在yii中使用他们不算新奇。对于非composer兼容的类库,一般自建一个目录比如lib,然后使用old-school(最原始的php技术)include|require_[once]进来即可。
如:~~~
require_once(Yii::getAlias('@app/lib').'/SomeClass.php') ;
$obj = new SomeClass();~~~
主思路就是计算所要导入的文件,类的文件路径,然后include | require 进来即可。还有一种使用方式: 设置自己的别名,然后用自己的命名空间,这种方法对于在自己的Yii2项目中使用短空间也比较有用。
yii默认有几个系统保留的名空间比如 app system web ... 项目中的类一般都是根据app 计算得到某个类的全称类名(full qualified name)
如类 : app\model\User .设置我们自己的别名,可以在配置文件中 aliases段 如下例:
~~~
'aliases' => [
'@nineinchnick/usr' => '@vendor/nineinchnick/yii2-usr',
'@year' => '@app/year',
'@common' => '@app/common',
],
~~~
这样我们的类就可以基于短别名的全额限定类名。如app\common\SomeClass 变为 common\SomeClass.还有值得一提的是:文件结构要跟名空间一致,不一致的只可能是根名空间(root namespace) 根名空间也就是你全额限定类名的起始名称
如yii的 app 根名空间 实际对应的目录名称是application 。试想如果你用application做根名空间那么位于其下的类都要“背负”这个
长根。## 项目结构
项目模版使用高级模版,一步到位。
项目采用模块化结构,对于每一个yii官方网站扩展仓库中的category 建立一个module ,大概十五个模块。然后针对每一个扩展建立一个
控制器。之所以这样做,是防止类名泛滥,文件很多将来看着乱。况且每个扩展可能还涉及搭配的类,这样类数目也是相当客观的。## 贡献者列表:
- [xxx](xxxxx.xx.com)