文档章节

yaf目录生成 (纯属记录)

清澈
 清澈
发布于 2016/07/14 11:01
字数 391
阅读 23
收藏 0

<?php  
  
/* 
+ public 
  |- index.php //入口文件 
  |- .htaccess //重写规则     
  |+ css 
  |+ img 
  |+ js 
+ conf 
  |- application.ini //配置文件    
+ application 
  |+ controllers 
     |- Index.php //默认控制器 
  |+ views     
     |+ index   //控制器 
        |- index.phtml //默认视图 
  |+ modules //其他模块 
  |+ library //本地类库 
  |+ models  //model目录 
  |+ plugins //插件目录 
*/  
define("APP_PATH", realpath(dirname(__FILE__)) . DIRECTORY_SEPARATOR);
class app {
  
    // 创建项目目录结构  
    public static function build_yaf_dir() {
        if(is_writeable(APP_PATH)) {
            $dirs  = array(
                APP_PATH . 'public',
                APP_PATH . 'public' . DIRECTORY_SEPARATOR . 'css',
                APP_PATH . 'public' . DIRECTORY_SEPARATOR . 'img',
                APP_PATH . 'public' . DIRECTORY_SEPARATOR . 'js',
                APP_PATH . 'conf',
                APP_PATH . 'application',
                APP_PATH . 'application' . DIRECTORY_SEPARATOR . 'controllers',
                APP_PATH . 'application' . DIRECTORY_SEPARATOR . 'views',
                APP_PATH . 'application' . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'index',
                APP_PATH . 'application' . DIRECTORY_SEPARATOR . 'modules',
                APP_PATH . 'application' . DIRECTORY_SEPARATOR . 'library',
                APP_PATH . 'application' . DIRECTORY_SEPARATOR . 'models',
                APP_PATH . 'application' . DIRECTORY_SEPARATOR . 'plugins',
            );
  
            // 循环生成文件  
            foreach ($dirs as $dir){
                if(!is_dir($dir))  mkdir($dir,0755,true);
            }
  
            // 写入入口文件public/index.php  
            $content = <<<'EOT'
<?php
define("APP_PATH",  realpath(dirname(__FILE__) . '/../')); /* 指向public的上一级 */
$app  = new Yaf_Application(APP_PATH . "/conf/application.ini");
$app->run();
?>
EOT;
            self::generateFile(APP_PATH . 'public' . DIRECTORY_SEPARATOR . 'index.php', $content);
  
            // 写入重写规则 
            $content = <<<'EOT'
#.htaccess, 当然也可以写在httpd.conf
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php
EOT;
            self::generateFile(APP_PATH . 'public' . DIRECTORY_SEPARATOR . '.htaccess', $content);
  
            // 写入配置文件  
            self::generateFile(APP_PATH . 'conf' . DIRECTORY_SEPARATOR . 'application.ini', "[product]\n;支持直接写PHP中的已定义常量\napplication.directory=APP_PATH \"/application/\"\n");
  
            // 写入默认控制器  
            $content = <<<'EOT'
<?php
class IndexController extends Yaf_Controller_Abstract {
  
    // 默认Action
    public function indexAction() {
        $this->getView()->assign("content", "Hello World");
    }
}
?>
EOT;
            self::generateFile(APP_PATH . 'application' . DIRECTORY_SEPARATOR . 'controllers' . DIRECTORY_SEPARATOR . 'Index.php', $content);
  
            // 写入默认Action的视图  
            $content = <<<'EOT'
<html>
    <head>
        <title>Hello World</title>
    </head>
    <body>
        <?php echo $content;?>
    </body>
</html>
EOT;
            self::generateFile(APP_PATH . 'application' . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'index' . DIRECTORY_SEPARATOR . 'index.phtml', $content);
        }else{
            header('Content-Type:text/html; charset=utf-8');
            exit('项目目录不可写,目录无法自动生成!<BR>请使用项目生成器或者手动生成项目目录~');
        }
    }
  
    // 生成文件  
    public static function generateFile($file, $content) {
        if(!is_file($file)) {
            file_put_contents($file, $content);
        }
    }

}
app::build_yaf_dir();

?>

本文转载自:

共有 人打赏支持
清澈
粉丝 1
博文 10
码字总数 1440
作品 0
西安
程序员
windows下添加yaf扩展,生成yaf框架

本机环境 PHP7.0 Apache 2.4.23 YAF框架扩展添加 1:下载添加扩展 https://pecl.php.net/package/yaf 2:将php_yaf.dll把这个文件解压到当前PHP的EXT目录下 编辑php.ini 加入yaf.dll 并且配置...

yitianQ
03/20
0
0
Windows下使用VS2010编译PHP5.4和YAF

需要研究Laruence维护的YAF,而且得在Windows下学习使用。php5.4的改进和新特性吸引我在将来来临的项目中使用它,现在php5.4.1已经RC了,修正了大量bug,正式版很快就会发布了。估计在项目正...

龙之
2014/02/23
0
2
Yaf 中使用 Larvael Eloquent ORM

本教程示例代码见:https://github.com/creazy412/yaf2eloquentorm 背景介绍 Yaf 是鸟哥(Laruence)在俩年前写的一个PHP扩展的MVC框架. 开发Yaf的目的是为了解决使用框架带来的性能下降的经...

老K8
05/31
0
0
PHP扩展MVC框架--FoolPHP

FoolPHP是由PHP扩展实现的轻量级MVC框架 在php框架漫天飞的今天为什么还要自己再写一个呢? 首先,笔者写这个项目的主要目的很单纯:学习!笔者本人还很年轻,入行两年一直以二手程序员自居,...

盘古大叔
2015/08/09
720
0
Laravel中的日志与上传

PHP中的框架众多,我自己就接触了好几个。大学那会啥也不懂啥也不会,拿了一个ThinkPHP学了。也许有好多人吐槽TP,但是个人感觉不能说哪个框架好,哪个框架不好,再不好的框架你能把源码读上...

weixingo
2016/03/11
52
0

没有更多内容

加载失败,请刷新页面

加载更多

WinDbg

参考来自:http://www.cnit.net.cn/?id=225 SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols ctrl + d to open dump_file Microsoft (R) Windows Debugger Version 6.12.0002.633......

xueyuse0012
今天
2
0
OSChina 周五乱弹 —— 想不想把92年的萝莉退货

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @罗马的王:分享松澤由美的单曲《地球ぎ》 很久没看圣斗士星矢了 《地球ぎ》- 松澤由美 手机党少年们想听歌,请使劲儿戳(这里) @开源中国首...

小小编辑
今天
14
2
springBoot条件配置

本篇介绍下,如何通过springboot的条件配置,控制Bean的创建 介绍下开发环境 JDK版本1.8 springboot版本是1.5.2 开发工具为 intellij idea(2018.2) 开发环境为 15款MacBook Pro 前言 很多时候,...

贺小五
今天
1
0
javascript source map 的使用

之前发现VS.NET会为压缩的js文添加一个与文件名同名的.map文件,一直没有搞懂他是用来做什么的,直接删除掉运行时浏览器又会报错,后来google了一直才真正搞懂了这个小小的map文件背后的巨大...

粒子数反转
昨天
1
0
谈谈如何学Linux和它在如今社会的影响

昨天,还在农耕脑力社会,今天已经人工智能技术、大数据、信息技术的科技社会了,高速开展并迅速浸透到当今科技社会的各个方面,Linux日益成为人们信息时代的到来,更加考验我们对信息的处理程...

linux-tao
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部