yii2实战之初见端倪
PHP框架大PK
php框架有很多种,在国内应用较多的有:Thinkphp, Yii, Laravel, Codeigniter等。关于这些框架,孰优孰劣,是一个极具争议性的话题。各方支持者总能拿出自己的理由,把自己喜欢的框架捧上天,将其他框架喷成翔。
因此,冒昧地给这些框架作排名是不明智的,很容易成为众矢之的。诚如黑格尔所说:“存在即合理”,流行的PHP框架必然有其存在的市场基础,要么是简单易学,撸起袖子直接开干,学习成本低,公司易招人;要么是高效强大,代码优雅,安全健壮,但学习门槛高,公司招人成本大。
其实,完全没必要纠结于要学习哪种框架,选框架又不是选老婆,只能选一个。我们完全可以多掌握几个框架,而且是必须要这么做,不然思路会很狭隘。
本系列文章之所以选用yii2构建一个完整的应用,基于我最近在深入了解yii2,便将自己对于yii2的理解表达出来,希望能帮助那些想了解yii2的同学。如果你对yii2感兴趣,欢迎入坑。如果你对yii2不感兴趣,更希望你能抽空了解下,给yii2一个机会,让她展现魅力,我相信,不喜欢用yii2的人,绝大部分是使用的姿势不对。好比普通人拿屠龙宝刀,只能用于切西瓜,还嫌其笨重。yii2享誉盛久,绝非浪得虚名。
那么,现在开始我们的yii2之旅吧, 少年...

安装yii2
现代化的php框架都支持用composer安装,yii2自然也不例外。如果你对composer不了解,到composer中文网补课。
很悲剧的是,由于众所周之的原因,国内访问国外网络很慢,虽然composer为大多数PHP项目作了中国镜像,可对于yii2的有些插件并没有作镜像。因此,在没有梯子的情况下,用composer安装yii2很大可能是失败...

我尝试了好几次,都没成功...
看了composer中文社区的说明,我也很无奈啊...


于是,我放弃挣扎了,直接下载文档包

项目初始化
将归档文件解压,重命名为yii, 进入目录,执行 php init


项目建立后的第一件事,就是将项目推送到远程git仓库,相信我,使用git是你写任何代码之前最明智的选择。由于github的速度较慢,建议用国内的gitee作为个人代码仓库。
以下是我的项目仓库链接, 关于yii2的实战系列教程代码都会提交到此项目,欢迎star
配置服务
yii2有两套模板,一个是基本模板,一个是高级模板。我们下载的是高级模板,自带了前台与后台目录,因此需要设置两个域名,host配置如下:
127.0.0.1 frontend.test # 前台
127.0.0.1 backend.test # 后台
web服务器,我选用nginx,以下是nginx的配置:
server {
charset utf-8;
client_max_body_size 128M;
listen 80; ## listen for ipv4
#listen [::]:80 default_server ipv6only=on; ## listen for ipv6
server_name frontend.test;
root /path/to/yii-application/frontend/web/; # 你的项目路径
index index.php;
access_log /path/to/yii-application/log/frontend-access.log; # nginx日志存放在项目目录下
error_log /path/to/yii-application/log/frontend-error.log;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ ^/assets/.*\.php$ {
deny all;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
try_files $uri =404;
}
location ~* /\. {
deny all;
}
}
server {
charset utf-8;
client_max_body_size 128M;
listen 80; ## listen for ipv4
server_name backend.test;
root /path/to/yii-application/backend/web/; # 你的项目路径
index index.php;
access_log /path/to/yii-application/log/backend-access.log;
error_log /path/to/yii-application/log/backend-error.log;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ ^/assets/.*\.php$ {
deny all;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
try_files $uri =404;
}
location ~* /\. {
deny all;
}
}
注意:将
/path/to/yii-application/修改为你的本地项目路径;
在项目根目录新建log目录存放nginx日志, 不然会报错!
重启nginx服务
浏览器访问:http://frontend.test

后台:http://backend.test
浏览器访问:http://backend.test

将log目录添加到.gitignore,提交代码到远程仓库。
小结
本小节讲了如何安装配置yii2。下节将讲解yii2的控制器和视图是如何交互数据的。敬请关注...
yii2实战之初见端倪的更多相关文章
- yii2实战教程之第一个Yii程序
之前考虑过要不要砍掉该章节,直接上手教你搭建简单的博客系统.出于实战基础加之自C语言的书籍出版以来,几乎所有的编程书籍都讲述了一个Hello World的例子作为开始.虽然我们仅仅是学习Yii2,但是 ...
- yii2实战教程之新手入门指南-简单博客管理系统
作者:白狼 出处:http://www.manks.top/document/easy_blog_manage_system.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文 ...
- yii2 实战教程之如何安装
作者:白狼 出处:http://www.manks.top/document/install.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则 ...
- Yii2 基于RESTful架构的 advanced版API接口开发 配置、实现、测试 (转)
环境配置: 开启服务器伪静态 本处以apache为例,查看apache的conf目录下httpd.conf,找到下面的代码 LoadModule rewrite_module modules/mod_ ...
- yii2搭建完美后台并实现rbac权限控制实例教程
1.安装yii2 未安装的请参考yii2史上最简单式安装教程,没有之一 或者参考yii2实战教程之详细安装步骤 已安装的请继续看下一步操作 2.配置数据库 2.1 配置数据库 修改common/con ...
- Yii2 基于RESTful架构的 advanced版API接口开发 配置、实现、测试
环境配置: 开启服务器伪静态 本处以apache为例,查看apache的conf目录下httpd.conf,找到下面的代码 LoadModule rewrite_module modules/mod_ ...
- Yii2 基于RESTful架构的 advanced版API接口开发 配置、实现、测试【转】
环境配置: 开启服务器伪静态 本处以apache为例,查看apache的conf目录下httpd.conf,找到下面的代码 LoadModule rewrite_module modules/mod_ ...
- API接口开发 配置、实现、测试
Yii2 基于RESTful架构的 advanced版API接口开发 配置.实现.测试 环境配置: 开启服务器伪静态 本处以apache为例,查看apache的conf目录下httpd.conf,找到 ...
- yii2项目实战-路由美化以及如何正确的生成链接
yii2项目实战-路由美化以及如何正确的生成链接 更新于 2016年12月17日 by 白狼 被浏览了 705 次 美化路由 何为美化路由呢?美化嘛,无外乎就是给路由化化妆,让她好看点.我虽没化过妆, ...
随机推荐
- Android进阶(五)在Eclipse中关联Gson源码
1)获得相应的jar包gson-2.2.4-sources.jar与gson-2.2.4-javadoc.jar. 2)在libs目录下新建src包和docs包,将相应jar包放入相应文件夹内. 3) ...
- Java 8新特性探究(一) JEP126特性lambda表达式和默认方法
Lambda语法 函数式接口 函数式接口(functional interface 也叫功能性接口,其实是同一个东西).简单来说,函数式接口是只包含一个方法的接口.比如Java标准库中的java.la ...
- 【shell脚本练习】网卡信息和简单日志分析
题目 1.写一个脚本getinterface.sh,脚本可以接受参数(i,I,a),完成以下任务: (1)使用以下形式:getinterface.sh [-i interface|-I IP|-a] ...
- Linux进程实践(2) --僵尸进程与文件共享
孤儿进程与僵尸进程 孤儿进程: 如果父进程先退出,子进程还没退出那么子进程的父进程将变为init进程.(注:任何一个进程都必须有父进程) //生成孤儿进程 int main(int argc, cha ...
- android放大镜效果实现
概述 我相信很多用过英语应用的同学都看多一个放大镜的效果,就是选中一段文字后,会有一个放大镜,这个究竟怎么实现的呢,我们今天来分析分析. 源码分析 public class ShaderView ex ...
- 【Matlab编程】哈夫曼编码的Matlab实现
在前年暑假的时候,用C实现了哈夫曼编译码的功能,见文章<哈夫曼树及编译码>.不过在通信仿真中,经常要使用到Matlab编程,所以为了方便起见,这里用Matlab实现的哈夫曼编码的功能.至于 ...
- C/C++预处理指令#define,#ifdef,#ifndef,#endif… (转)
本文转自博文C/C++预处理指令#define,#ifdef,#ifndef,#endif….这篇博文写得特别好,特转载. 本文主要记录了C/C++预处理指令,常见的预处理指令如下: #空指令,无任何 ...
- 【面试笔试算法】Program 4 : Best Compression Algorithms(网易游戏笔试题)
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 易信是由网易和电信联合开发的一款即时通讯软件.除了语音聊天,免费电话等新功能以外,传统的文字信息聊天功能也得以保留,因此每 ...
- iOS真机调试步骤(Xcode8.0以上版本)(2015年)
方法/步骤(转载:http://jingyan.baidu.com/article/22fe7ced20cc073002617f97.html) 获取真机调试的证书,先在本地生成获取证书的文件,找不到 ...
- Android特效专辑(十一)——仿水波纹流量球进度条控制器,实现高端大气的主流特效
Android特效专辑(十一)--仿水波纹流球进度条控制器,实现高端大气的主流特效 今天看到一个效果挺不错的,就模仿了下来,加上了一些自己想要的效果,感觉还不错的样子,所以就分享出来了,话不多说,上图 ...