文档章节

yaf目录生成 (纯属记录)

清澈
 清澈
发布于 2016/07/14 11:01
字数 391
阅读 16
收藏 0
点赞 0
评论 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

Windows下使用VS2010编译PHP5.4和YAF

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

龙之 ⋅ 2014/02/23 ⋅ 2

PHP扩展MVC框架--FoolPHP

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

盘古大叔 ⋅ 2015/08/09 ⋅ 0

Laravel中的日志与上传

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

weixingo ⋅ 2016/03/11 ⋅ 0

Yaf 中使用 Larvael Eloquent ORM

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

老K8 ⋅ 05/31 ⋅ 0

Yaf零基础学习总结5-Yaf类的自动加载

Yaf零基础学习总结5-Yaf类的自动加载 框架的一个重要功能就是类的自动加载了,在第一个demo的时候我们就约定自己的项目的目录结构,框架就基于这个目录结构来自动加载需要的类文件。 Yaf在自...

开元中国2015 ⋅ 2015/04/17 ⋅ 0

yaf 工程结构

根目录下新建一个public 目录 E:codeyaf_demopublicindex.php index.php移动到public 目录下 define('APPLICATIONPATH', dirname(DIR_)); E:codeyaf_demotesting 测试的入口(做单元测试时用......

skinglzw ⋅ 2017/08/31 ⋅ 0

Yaf学习笔记1--Windows环境下安装Yaf

1 安装php的yaf扩展 ①查看phpInfo(),获取配置信息,注意下图所示几个信息点: ②根据上图中的配置信息,下载yaf.dll文件 下载地址:http://pecl.php.net/package/yaf 进入下载列表页面,点击...

雪之丞 ⋅ 2016/04/15 ⋅ 0

CZD_Yaf_Extension

CZDYafExtension 建立在Yaf 的基础上,集成了Smarty引擎,加入了封装出来的各种功能类,位于APPLICATION_DIR/library下 【更新记录】 2013.12.05 加入命令行请求入口,请求示例: php -f ind...

ChenZhiDong ⋅ 2013/12/05 ⋅ 0

yaf 学习

yaf 学习 C扩展的php框架Yaf采用自动加载机制,如果你的类库不符合yaf的标准,请将你的中的设置为1, 使用,在中提供整个项目的启动配置,可以将很多自定义的方法放到里面 使用bootstap yaf 使用...

eatnothing ⋅ 2016/08/04 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

windows profesional 2017 build problem

.net framework .... https://stackoverflow.com/questions/43330915/could-not-load-file-or-assembly-microsoft-build-frameworkvs-2017...

机油战士 ⋅ 43分钟前 ⋅ 0

python3中报错的解决方法(长期更新)

1、ImportError: No module named ‘DjangoUeditor’ 出错原因:安装DjangoUeditor库适用于python2,需要下载适用python3的 下载地址:https://github.com/twz915/DjangoUeditor3 2、python3......

xiaoge2016 ⋅ 48分钟前 ⋅ 0

数据结构与算法之双向链表

一、双向链表 1.双向链表的结点结构 typedef struct DualNode{ ElemType data; struct DualNode *prior; // 前驱结点 struct DualNode *next; // 后继结点}DualNode, *DuL...

aibinxiao ⋅ 今天 ⋅ 0

五大最核心的大数据技术

大数据技术有5个核心部分,数据采集、数据存储、数据清洗、数据挖掘、数据可视化。关于这5个部分,有哪些核心技术?这些技术有哪些潜在价值?看完今天的文章就知道了。 大数据学习群:7165810...

董黎明 ⋅ 今天 ⋅ 0

PhpStorm 头部注释、类注释和函数注释的设置

首先,PhpStorm中文件、类、函数等注释的设置在:setting-》Editor-》FIle and Code Template-》Includes下设置即可,其中方法的默认是这样的: /**${PARAM_DOC}#if (${TYPE_HINT} != "v...

nsns ⋅ 今天 ⋅ 0

spring.net AOP

http://www.springframework.net/doc-latest/reference/html/aop-quickstart.html https://www.cnblogs.com/wujy/archive/2013/04/06/3003120.html...

whoisliang ⋅ 今天 ⋅ 0

【HAVENT原创】创建 Dockerfile 生成新的镜像,并发布到 DockerHub

注意:Win7 与 Win10 的版本存在差异,Win7 版本使用 Docker Quickstart Terminal 进入控制台,Win10下面直接用管理员权限打开控制台或者 PowerShell 即可;另外 Win7 下面只能访问 C盘,/ap...

HAVENT ⋅ 今天 ⋅ 0

pom.xml出现web.xml is missing ...解决方案

提示信息应该能看懂。也就是缺少了web.xml文件,<failOnMissingWebXml>被设置成true了。 搜索了一下,Stack Overflow上的答案解决了问题,分享一下。 目前被顶次数最多的回答原文如下: This...

源哥L ⋅ 今天 ⋅ 0

js时间戳与日期格式之间相互转换

1. 将时间戳转换成日期格式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 // 简单的一句代码 var date = new Date(时间戳); //获取一个时间对象 /** 1. 下面是获取时间日期的方法,需要什么样的格式自己...

Jack088 ⋅ 今天 ⋅ 0

web添加log4j

添加xml配置log4j.properties # Global logging configuration---root日志设置#log4j.rootLogger=info,dailyRollingFile,stdoutlog4j.rootLogger=debug,stdout,dailyRollingFile---......

黄柳淞 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部