Skip to content

livestaring/train_admin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

709 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

特点

1: 全面使用 yaf.library 来实现类的自动加载

2: 使用 setErrorHandle 来实现自定义错误输出, 方便 debug

安装 [建议在Linux下使用]

1: 安装YAF 扩展, 然后在 php.ini 里加入如下内容, 重启 WEB 服务

[YAF]
extension = yaf.so
yaf.environ = dev

2: 配置好 application.ini 里的MySQL参数并将 dym.sql 导入自己的数据库 [导入前记得设置导入编码为UTF8]

3: 配置虚拟主机, 写对应的HOSTS

4: 解压文件至指定目录,运行

5: WEB 服务器开启 URL Rewrite 功能, Apache 下有 .htaccess [该文件默认为隐藏文件], Nginx 的虚拟主机需要加如下代码

location / {
    if (!-e $request_filename) {
        rewrite ^/(.*)$ /index.php?$1 last;
    }
}

6: Nginx 下配置文件示例 [请将 root 指向 public 目录]

server {
    listen       80;
    server_name  dev.yof.com;
    root /usr/www/YOF/public;
    index index.php;

    location / {
		if (!-e $request_filename) {
		   rewrite ^/(.*)$ /index.php?$1 last;
		}
    }

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        include fcgi.conf;
    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
        expires      30d;
    }

    location ~ .*\.(js|css)?$ {
        expires      12h;
    }

}

设置

> 1: MySQL 参数 application.ini

2: php.ini 中或调用 ini_set('yaf.environ') 来设置运行环境, 目前支持 dev, test, product

A: 开发环境请设置为 dev, 此时所有错误将打印出来方便调试

B: 线上测试环境设置为 test,

此时 PHP 的错误将记录在 APP_PATH.'/log/php/' 下的 $当天日期.log

SQL 的错误将记录在 APP_PATH.'/log/sql/' 下的 $当天日期.log

C: 正式生产环境设置为 product

此时 PHP 的错误将记录在 APP_PATH.'/log/php/' 下的 $当天日期.log

SQL 的错误将记录在 APP_PATH.'/log/sql/' 下的 $当天日期.log

注:正式生产环境千万不能设置为 dev, 切记!!!

3: 配置网站域名, 图片域名, 静态文件域名等, 避免硬编码

目录结构

applicatoin => 程序主目录

controllers => 不使用modules 情况下的控制器目录

extend => 第三方类库

library => 封装好的类库

modules => YAF 默认的模块文件

views => 视力文件默认目录

conf => 配置文件目录, application.ini

public => 公用文件, JS, CSS, IMG 等一般位于此

runtime => 缓存文件或日志文件

内置常量

APP_PATH => 根目录

ENV => 运行环境

LIB_PATH => 类目录, 即 APP_PATH.'/application/library'

ADMIN_PATH => Admin 模块目录, APP_PATH.'/application/modules/Admin'

IMG_PATH => IMG 路径, 即 /img

CUR_DATE => 当前日期, 格式 Y-m-d

SERVER_DOMAIN => 网站域名

STATIC_DOMAIN => 静态文件域名

IMG_DOMAIN => 图片域名

使用

一: 控制器

A:不是模块下的情况: 在 APP_PATH.'/controllers' 目录下按 YAF 规则创建控制器, 如示例中的 Article.php

B: 模块下的情况: 在 APP_PATH.'/modules/模块/controllers' 目录下按 YAF 规则创建控制器, 如示例中的 User/controllers/User.php

C: 基本控制器 APP_PATH.'/controllers/core/C_Basic.php', 对 request, session, cookie 中的方法进行了简易封装, 令业务控制器可以少写不少的代码!

二: 模型

A: 常规模型: 在 APP_PATH.'/model' 目录下按 M_$模型名称.php 规则创建, 指定对应的表, 如示例中的 M_Admin, M_Role.php等

B: 不创建模型, 使用默认模型, 这种情况下不需要创建模型文件. 如示例中并没有 M_Articles.php,也可以操作 article 表, 按默认模型的方式调用即可

模型的调用: 控制器中调用基础控制器 C_Basic.php 的 load($模型名)

A: 常规模型: $this->m_role = $this->load('Role');

B: 默认模型: $this->m_article = $this->load('Article');, 示例中并没有 M_Articles.php 也可以加载, 但参数 Article 必须与表名对应, 即对应的表名必须是 TB_PREFIX.'article'

三: 视图

A: 在 YAF 指定的视图目录里创建与 Action 一样的文件名.php|.html

B: 控制器调用 $this->getView()->assign($buffer);

C: 视图文件里用模板引擎或原生PHP 展示数据就可以了

模块的调用

1: 先在 APP_PATH.'/conf/application.ini' 中添加模拟, DEMO 中有 Index,Api 四个模块. 注 Index模块 必不可少

2: 在 APP_PATH.'/application/modules' 中创建模块目录, 比如说DEMO 中的 Api

3: 建立 controllers, views 目录

4: 按 http://你的域名/模块名/控制器/方法 的规则调用, 如调用 Api 模块 Article 中的index

http://dev.yaf.com/api/article/index

API

DEMO 中处理方式是增加一个Module, 名为 Api, 按照基本的 MVC 模式去写就好了, 当然了别忘了给接口作安全验证

Q:如果又有网站, 又有 APP, 还要出手机端网站,如果只调用一次数据就能满足?

A: 借助 Library, 让其调用模型,出统一的数据. API,网站,手机网站的控制器调用 Library 中的方法即可

事务支持

> 你可以使用 YOF 中的类来写得更优雅些 请点击这里查看强大的 SQL 拼接方法, 支持Where, ORR, Order 无限次数调用

About

企业培训-后台 最后跟新日期:2017年12月。已停止维护。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors