分类 网页与编程 中的文章

解决php类继承关键性问题

这段时间一直被 PHP 的类的属性的方法的继承而困扰,VgotFaster 的开发也因这个问题被卡住了,这两天放下了 VgotFaster 框架的开发在做自己的个人主页的页面,估计 VgotFaster  不会马上出来了,我就随便写一个主页的简单的 PHP 对象来作为主页主站的框架了,结果写着写着也就不那么简单了,完全就是一个框架了,晕呼,我怎么搞的到处都是面向对象和框架啊,不过在视图对控制器的属性和方法访问时也就是类的属性和方法继承时还是碰到这个问题,今晚不知为何心平气也和,终于把这个问题给搞定,让视图可以直接访问控制器的属性和方法了,这次主页的框架写的没有 VgotFaster 那么强的自定义和功能,但是却解决了关键性问题,所以 VgotFaster 得重构了,汗呀,第一个版本还没出来就重来了。继续等待吧。

关于这个框架已经抛弃了对 PHP4 的支持,下面发上主页小框架解决关键性问题的 PHP5 的 __get 和 __call 魔术方法吧。

PHP代码片段

/*  
    关键性控制器属性获取  
    @ create 0:29 2009-7-29  
*/  
public function __get($kName)   
{   
    if(isset($this->V->controller->$kName)) {   
        return $this->V->controller->$kName;   
    } else {   
        return $this->V->$kName;   
    }   
}   
  
/*  
    关键性控制器方法调用  
    @ create 1:05 2009-7-29  
    @ update 1:22 2009-7-29  
*/  
public function __call($kName,$kValues)   
{   
    if($kValues) {   
        $vCounts = count($kValues);   
        $argEval = '';   
        for($i=0;$i<$vCounts;$i++) {   
            $argEval .= ',$kValues['.$i.']';   
        }   
        $argEval = substr($argEval,1);   
        eval('$a = $this->V->controller->$kName('.$argEval.');');   
        return $a;   
    } else {   
        return $this->V->controller->$kName();   
    }   
}


Pader 2009-7-29 2

新首页页面制作完成

把上次做的效果图给做了出来

查看:http://www.vgot.net/new_vgot/

Pader 2009-7-26 0

CSS 内部居中浮动实现(float center)

我们都知道及float:left; 和 float:right;,但是否想过 float:center; 呢?

看下面这段代码:

<div class="fpage">
    <ul>
        <li>列表一</li>
        <li>列表二</li>
        <li>列表三</li>
    </ul>
</div>

我们想让 .fpage 内的 li 的整个区域浮动居中显示,这里面的 li 数量未知,ul 的宽度也是未知。当然我们可以让给 .fpage 一个 text-align:center; 但这并不是我们的初衷,很多时候我们必须得使用浮动。
这里我们得先重温一下 position:relative; 它将依据 left, right, top, bottom 等属性在正常文档流中偏移位置。那我们可以让 ul 为position:relative;left:50%,然后再让 li 向左浮动,在让它 position:relative;right:50%(或者left:-50%),那么 li 就有了我们想要的居中浮动效果啦!

CSS:

.fpage {
    position:relative;
    width:100%;
    height:80px;
    background-color:#eee;
    text-align:center;
    overflow:hidden;
}
.fpage ul {
    float:left;
    position:relative;
    left:50%;
    list-style:none;
}
.fpage ul li {
    position:relative;
    right:50%;
    float:left;
    margin:10px;
    padding:0 10px;
    border:solid 1px #000;
    line-height:60px;
}

下载这个实例:[attach=160]

Pader 2009-7-24 0

新首页效果图

主页几经改动,始终未能安定,目前处于沉底期,现花了一个晚上时间做了个首页的效果图,等列队的项目完成之后便会开始我的新首页啦,先爆出效果图:

Pader 2009-7-18 0

VgotFaster 预备上线

VgotFaster PHP Framework 预备发布

VgotFaster 是本人开发的一款简洁小巧的 PHP 框架,目前支持大部分框架核心功能,包括:

路由访问
路由方式支持 GET QUERY_STRING PATH_INFO 的方式访问控制器,并且支持文件夹嵌套多层访问

  • GET: /?ctrl=welcome&act=index
  • QUERY_STRING: /?welcome/index
  • PATH_INFO: /welcome/index
    配合 rewrite 可以使用伪静态地址


应用程序配置
在 app/config 目录下有框架运行的大部分配置,并且可以创建自定义配置

Loader
类库、辅助函数、模型的载入,可以在配置文件中设置自动载入的项目
数据库操作
只需使用 $this->load->database(); 便可使用 $this-db 的方法操作 MySQL  数据库,您也可以在自动载入 libraries 项中添加 database 以自动载入数据库操作类
视图、模板
视图以PHP文件的方式被嵌入,变量需以严谨的方载传递,模板支持类似 Smarty 的标签语法,如:
<!--{if $a = $b}-->
  {$b}
<!--{/if}-->
另外支持 elseif,else,loop,for 等等..
自定义扩展
可以方便的增加自己的类库和辅助函数,只需使用 $this->load 或加入到自动载入配置便可以在控制器或模型中使用

此框架为本人业余作品,目的是为了用来开发自己的一些程序项目,这样的话才可以说此程序为完全是本人开发。此框架抛弃了对 PHP4 的支持,目前正在增加一些扩展功能类库和辅助函数,过不了多久就会上线啦,哈哈。本人决定让其开源,Thank you!

框架某控制器运行过程记录

VgotFaster Run Spoologs: Array
(
    [0] => VgotFaster Start Running
    [1] => Include Library File: system/libraries/config.php
    [2] => Create class: Config
    [3] => Include Library File: system/libraries/loader.php
    [4] => Create class: Loader
    [5] => VgotFaster Initialize
    [6] => Include Config File: app/config/config.php
    [7] => Read Config: config
    [8] => Include Library File: system/libraries/router.php
    [9] => Create class with params: Router
    [10] => Include Config File: app/config/autoload.php
    [11] => Read Config: autoload
    [12] => VgotFaster Autoload
    [13] => Load VF_helper File: system/helpers/url.php
    [14] => Quote class: Config
    [15] => Quote class: Loader
    [16] => VgotFaster Initialize
    [17] => Get VgotFaster Instance Object
    [18] => Read Config: config
    [19] => Extract Vars To View: t/ooo
    [20] => Get VgotFaster Instance Object
    [21] => Read Config: config
    [22] => Extract Vars From Level To View: welcome
    [23] => Include View File: app/data/template_cache/welcome.tpl.php
    [24] => Include View File: app/data/template_cache/t/ooo.tpl.php
)
Pader 2009-7-4 0