Yii2 起步 之创建项目

679 查看

yii2目前还处于beta版本,相关文档也一直在变化,如有疏漏,还请及时反馈

Yii2安装

两种安装方式,composer或者下载zip包

  • 使用composer安装初始化yii2项目(推荐)

    windows下,如果本机还没有安装composer,我的做法是是直接下载composer.phar包
    假定你的工作目录是 workspace,将下载的composer.phar放在workspace下
    命令行进入workspace 执行如下命令,初始化一个基于yii2的应用
    php composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic basic
    其中 命令最后的basic可以替换任意你想设定的应用名称,比如app,myapp等等

    关于composer的安装使用请查阅相关资料 composer官方地址

  • 源码安装
    源码包地址 yii2-beta
    下载源码包解压后即yii2的框架源文件,然后根据自己的实际情况构建目录结构,进行开发

项目初始化完成以后,配置yii2的配置文件,配置文件一般放在app/config目录下,当然这个路径会根据个人习惯而不同]
我个人推荐的yii2框架目录结构(使用composer 创建项目的默认目录结构和此不同)

composer.json       定义项目中的composer依赖包,内容格式可使用composer init生成
vendor/             第三方包依赖目录,包括yii2框架
web/                nginx/apache配置的webroot目录,提供外部访问
app/                 app根目录
  assets/             assets管理定义
  commands/           命令行工具(controller)
  config/             应用程序配置
  controllers/        web controller目录(控制器)
  views/              应用views目录(视图)
  models/             models classs 目录(模型)
  mail/               e-maill的模板目录
  runtime/            运行时生成文件目录,要求读写权限
  tests/              单元测试目录

注意一定要在配置文件里定义 vendorPath的路径

环境要求

  • PHP 5.4 以上
  • 其他要求运行 php requirements.php监测

nginx虚拟机配置

使用此配置时,注意设定php.ini的一个参数值 cgi.fix_pathinfo=0

server {
    set $yii_bootstrap "index.php";
    charset utf-8;
    client_max_body_size 128M;

    listen 80; ## listen for ipv4
    #listen [::]:80 default_server ipv6only=on; ## listen for ipv6

    server_name mysite.local;
    root        /path/to/project/web;
    index       $yii_bootstrap;

    access_log  /path/to/project/log/access.log  main;
    error_log   /path/to/project/log/error.log;

    location / {
        # Redirect everything that isn't real file to yii bootstrap file including arguments.
        try_files $uri $uri/ /$yii_bootstrap?$args;
    }

    # uncomment to avoid processing of calls to unexisting static files by yii
    #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
    #    try_files $uri =404;
    #}
    #error_page 404 /404.html;

    location ~ \.php$ {
        include fastcgi.conf;
        fastcgi_pass   127.0.0.1:9000;
        #fastcgi_pass unix:/var/run/php5-fpm.sock;
    }

    location ~ /\.(ht|svn|git) {
        deny all;
    }
}