最近学习yii2 framework,学而不思则罔,做个小的宝宝图片展示系统练练手。
系统功能如下:
前台部分部分展示上传的宝宝图片,并可以接受评论/点赞。
后台维护上传的照片,可以选择上传的图片是否公开,是否接受评论。
可以管理自己照片下的评论。
有一个任务系统,任务为每天给宝宝拍几张照片,写多少字的描述,完成得积分。
一个积分系统。
前台功能相对简单,使用yii2自带的jquery/bootstrap即可完成。
后台计划使用adminLTE。
环境使用的是现成的wamp server(http://www.wampserver.com/en/),搭建yii框架用的是composer(https://getcomposer.org/)。
用的是yii2的advance template,按照官方文档进行框架搭建(https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide/start-installation.md)
1.在cmd中将目录切换到wamp/apps下,运行composer。
composer global require "fxp/composer-asset-plugin:~1.1.1"
composer create-project --prefer-dist yiisoft/yii2-app-advanced yii2
注意不要在wamp/www目录下运行该命令,因为放在www目录下会把整个yii文件暴露出去,而实际上需要暴露给用户的只有frontend/web和backend/web两个文件夹
2.在cmd中将当前目录切换到wamp/apps/yii2下,运行初始化命令init.bat。
init
选择0(开发环境)
3.打开yii2/common/conf/main-local.php。根据里面的默认配置,在本地数据库建一个名为yii2advanced的库4.在cmd(路径保持在wamp/apps/yii2下)中运行yii migrate
public function setVendorPath($path)
{
$this->_vendorPath = Yii::getAlias($path);
Yii::setAlias('@vendor', $this->_vendorPath);
//Yii::setAlias('@bower', $this->_vendorPath . DIRECTORY_SEPARATOR . 'bower');
Yii::setAlias('@bower', $this->_vendorPath . DIRECTORY_SEPARATOR . 'bower' . DIRECTORY_SEPARATOR . 'bower-asset');
Yii::setAlias('@npm', $this->_vendorPath . DIRECTORY_SEPARATOR . 'npm');
}
修改点是把@bower的路径指向它的下一层目录bower-asset中。
Alias /babytask/admin "e:/wamp/apps/yii2/backend/web/"
Alias /babytask "e:/wamp/apps/yii2/frontend/web/"
<Directory "e:/wamp/apps/yii2/frontend/web/">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Require all granted
</Directory>
<Directory "e:/wamp/apps/yii2/backend/web/">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Require all granted
</Directory>
注意点:
- 因为wamp里的httpd.conf里配置了alias里的.conf文件都会被自动编入配置,所以只要写好这个文件,不需要做其他关联就能生效。
- yii2.conf里前两行的Alias不可颠倒。如果写反了,当用户输入/babytask/admin时,apache会先寻找frontend/web/admin/的东西而不是backend/web/从而导致404。