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 ipv6server_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 ipv4server_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的控制器和视图是如何交互数据的。敬请关注...

转载于:https://www.cnblogs.com/zhiqiexing/p/9017050.html

yii2实战之初见端倪相关推荐

  1. yii2实战教程之第一个Yii程序

    作者:白狼 出处:http://www.manks.top/document/yii_first_application.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页 ...

  2. YII2日常所用的教程

    YII2日常所用的教程 作者:Terry,2014年开始使用Yii2,用yii2做了几个线上项目,包括:外贸B2C电商,ERP,营销系统,统计系统等.本博客致力于研究Yii2的源码,研究他的内在机制, ...

  3. php yii2,YII2 教程

    作者:Terry,2014年开始使用Yii2,用yii2做了几个线上项目,包括:外贸B2C电商,ERP,营销系统,统计系统等.本博客致力于研究Yii2的源码,研究他的内在机制,以及一些扩展的经验.将Y ...

  4. 弗洛伊德算法c语言path,Floyd算法(弗洛伊德算法)

    算法描述: Floyd算法又称为弗洛伊德算法,插点法,是一种用于寻找给定的加权图中顶点间最短路径的算法.从图的带权邻接矩阵A=[a(i,j)] n×n开始,递归地进行n次更新,即由矩阵D(0)=A,按 ...

  5. yii2项目实战-博客管理平台的搭建

    登录 | 注册 收藏成功 确定 收藏失败,请重新收藏 确定 查看所有私信查看所有通知 暂没有新通知 返回通知列表 下一条 上一条 分享资讯 传PPT/文档 提问题 写博客 传资源 创建项目 创建代码片 ...

  6. yii2项目实战-用户管理之登录与注册功能实现

    为什么80%的码农都做不了架构师?>>>    作者:白狼 出处:http://www.manks.top/document/yii2-user.html 本文版权归作者,欢迎转载, ...

  7. php实战搭建博客,yii2项目实战-博客管理平台的搭建

    作者:白狼 出处:http://www.manks.top/document/yii2-blog-manage.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置 ...

  8. YII2.0之博客实战

    YII2.0 好像没有碰很久了,无意中在网上看到了一个YII2.0的播客视频,所以也想借着这个视频,真正的去用一下YII2.0 首先还是使用归档文件的方式安装,不同于上一次的是,这次试用advance ...

  9. php7 实战 新闻类,楼+之PHP7实战第1期

    楼+ 之 PHP7 实战 6周实践成为 PHP 初级工程师 40个编程实验,23个挑战作业,7次作业直播 楼+ 是实验楼精心打造的教学产品,课程由实验楼一线核心研发人员和首席技术专家制作,且提供导师直 ...

最新文章

  1. 面向对象设计原则之三:里氏替换原则
  2. 容器与微服务从技术到艺术 你需要这场论坛
  3. Leetcode1705. 吃苹果的最大数目[C++题解]:贪心
  4. 把一个函数作为参数传入到函数中
  5. C++ STL string 简单使用
  6. nginx配置php项目后403,nginx配置引发的403问题解决办法
  7. 北方民族大学计算机全国排名,校友会:全国15所民族类大学排名,这三所大学进入十强...
  8. delphi无边框移动_墨竹工卡县边框护栏网【价格美丽产品厂家】
  9. 18.MongoDB之balancer
  10. 【Java基础】图片压缩
  11. 前端进阶篇——02、CSS和JS
  12. lucene中文分词搜索的核心代码
  13. 过采样方法、欠采样介绍
  14. datastore java_Java Datastore.find方法代码示例
  15. JavaScript函数式编程入门-计算器应用
  16. 安卓电视通过U盘安装第三方软件教程
  17. 海大叔侃币:作为一个炒币者,分享三点经验
  18. 关于求标准正态分布函数值
  19. java 内存溢出 jstack,Java——命令jps、jstat、jmap、jstack、jhat、jinfo
  20. 3dsmax游戏角色头部建模教程

热门文章

  1. javascript将HTML页面导出为pdf
  2. 网易2017笔试题-日记的颜色
  3. eating的中文意思_Eating是什么意思中文
  4. photoshop抠图后如何使边缘模糊圆滑
  5. mysql from 嵌套查询,MySQL嵌套查询实例详解
  6. 基于EEG和fNIRS的混合生物标志物的脑成像
  7. 硬盘分区MBR和GPT选哪个好?原来分个区还有这么多讲究!
  8. C++知识点打结(一)
  9. 前程无忧“病情”加重
  10. python常用功能_Python常用功能函数系列总结(七)