yii框架源码阅读学习点滴

  由于php基础知识不扎实,没有全面的了解函数的意义,通过阅读yii框架,学习记录每天的收获,以便于加深自己的记忆。

 2014年4月28日

          realpath(path)-->realpath(‘protected’)-->E;/wnmp/www/book/protected

          dirname($_SERVER['SCRIPT_FILENAME'])与dirname(__FILE__)的区别  前者是正在执行的脚本的目录  后者是写有此变量的文件所在的目录

          抽象类中没有抽象方法,为什么还要定义成为抽象类,这样做的好处是什么?---》这个需要思考,并深入的去了解。--多态,扩展,不能实例化等等有云,需要留给自己思考。

网友的回答:http://bbs.csdn.net/topics/290057815   

我以为回答比较好的如下:





2014年4月30日

yii社区高手的源码分析:

http://www.yiiframework.com/forum/index.php?/topic/5457-%E5%89%8D%E4%B8%80%E9%98%B5%E5%86%99%E7%9A%84yii%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/

1、spl_autoload_register()函数

spl_autoload_register(array("Yiibase",'autoload'))---将YiiBase类的静态方法autoload 注册为类加载器。 PHP autoload 的简单原理就是执行 new 创建对象或通过类名访问静态成员时,系统将类名传递给被注册的类加载器函数,类加载器函数根据类名自行找到对应的类文件并include 。

2、http://www.docin.com/p-320674127.html&uid=26577911?bsh_bid=147181997


2014年5月4日

1、yii框架的目录  


|-framework     框架核心库  

|--base         底层类库文件夹,包含CApplication(应用类,负责全局的用户请求处理,它管理的应用组件集,将提供特定功能给整个应用程序),CComponent(组件类,该文件包含了基于组件和事件驱动编程的基础类,从版本1.1.0开始,一个行为的属性(或者它的公共成员变量或它通过getter和/或setter方法??定义的属性)可以通过组件的访问来调用),CBehavior(行为类,主要负责声明事件和相应事件处理程序的方法、将对象的行为附加到组件等等),CModel(模型类,为所有的数据模型提供的基类),CModule(是模块和应用程序的基类,主要负责应用组件和子模块)等等  

|--caching      所有缓存方法,其中包含了Memcache缓存,APC缓存,数据缓存,CDummyCache虚拟缓存,CEAcceleratorCache缓存等等各种缓存方法  

|--cli          YII项目生成脚本  

|--collections  用php语言构造传统OO语言的数据存储单元。如:队列,栈,哈希表等等  

|--console      YII控制台  

|--db           数据库操作类  

|--gii          YII 代码生成器(脚手架),能生成包括模型,控制器,视图等代码  

|--i18n         YII 多语言,提供了各种语言的本地化数据,信息、文件的翻译服务、本地化日期和时间格式,数字等  

|--logging      日志组件,YII提供了灵活和可扩展的日志记录功能。消息记录可分为根据日志级别和信息类别。应用层次和类别过滤器,可进一步选择的消息路由到不同的目的地,例如文件,电子邮件,浏览器窗口,等等|--messages      提示信息的多语言  

|--test          YII提供的测试,包括单元测试和功能测试  

|--utils         提供了常用的格式化方法  

|--validators    提供了各种验证方法  

|--vendors       这个文件夹包括第三方由Yii框架使用的资料库  

|--views         提供了YII错误、日志、配置文件的多语言视图  

|--web           YII所有开发应用的方法  

|---actions      控制器操作类  

|---auth         权限认识类,包括身份认证,访问控制过滤,基本角色的访问控制等  

|---filters      过滤器,可被配置在控制器动作执行之前或之后执行。例如, 访问控制过滤器将被执行以确保在执行请求的动作之前用户已通过身份验证;性能过滤器可用于测量控制器执行所用的时间  

|---form         表单生成方法  

|---helpers      视图助手,包含GOOGLE AJAX API,创建HTML,JSON,JAVASCRIPT相关功能  

|---js           JS库  

|---renderers    视图渲染组件  

|---services     封装SoapServer并提供了一个基于WSDL的Web服务  

|---widgets      部件  

|---CArrayDataProvider.php       可以配置的排序和分页属性自定义排序和分页的行为  

|---CActiveDataProvider.php      ActiveRecord方法类  

|---CController.php              控制器方法,主要负责协调模型和视图之间的交互  

|---CPagination.php              分页类  

|---CUploadedFile.php            上传文件类  

|---CUrlManager.php              URL管理  

|---CWebModule.php               应用模块管理,应用程序模块可被视为一个独立的子应用  

等等方法  

|--.htaccess                      重定向文件  

|--yii.php                        引导文件  

|--YiiBase.php                    YiiBase类最主要的功能是注册了自动加载类方法,加载框架要用到所有接口。  

|--yiic                           Yii LINUX 命令行脚本  

|--yiic.bat                       YII WINDOW 命令行脚本  

|--yiilite.php                    它是一些常用到的 Yii 类文件的合并文件。在文件中,注释和跟踪语句都被去除。因此,使用 yiilite.php 将减少被引用的文件数量并避免执行跟踪语句  


2、参考链接http://www.cnblogs.com/bluecobra/archive/2011/11/30/2269207.html



2014年5月5日

1、extract函数

函数抽取数组键名作为变量名



2014年5月21日  这一天阅读了数据库连接类

1、array  array_keys(array $inputs [,mixed $search_value=NULL [,bool $strict=false]])
     array_keys()  返回  input  数组中的数字或者字符串的键名。

参数 ¶

input

一个数组,包含了要返回的键。

search_value

如果指定了这个参数,只有包含这些值的键才会返回。

strict

判断在搜索的时候是否该使用严格的比较(===)。

返回值 ¶

返回 input 里的所有键。

更新日志 ¶

版本说明
5.0.0增加了 strict 参数。

范例 ¶

Example #1 array_keys() 例子

<?php
$array 
= array(=> 100"color" => "red");
print_r(array_keys($array));

$array = array("blue""red""green""blue""blue");
print_r(array_keys($array"blue"));

$array = array("color" => array("blue""red""green"),
               
"size"  => array("small""medium""large"));
print_r(array_keys($array));
?>

以上例程会输出:

Array
(
    [0] => 0
    [1] => color
)
Array
(
    [0] => 0
    [1] => 3
    [2] => 4
)
Array
(
    [0] => color
    [1] => size
)

  


2、array  get_object_vars(object $object)
     Gets the properties of the given object,Gets the accessible non-static properties of the given object according to scope.
<?php

class foo {
    private 
$a;
    public 
$b 1;
    public 
$c;
    private 
$d;
    static 
$e;
   
    public function 
test() {
        
var_dump(get_object_vars($this));
    }
}

$test = new foo;
var_dump(get_object_vars($test));

$test->test();

?>

The above example will output:

array(2) {
  ["b"]=>
  int(1)
  ["c"]=>
  NULL
}
array(4) {
  ["a"]=>
  NULL
  ["b"]=>
  int(1)
  ["c"]=>
  NULL
  ["d"]=>
  NULL
}
2014年5月23日 --这次阅读了缓存的类
1、extension_loaded  --->用来判断某一个扩展是否打开
2、dl  --->加载扩展
3、filemtime() -->文件的修改时间
4、发现了一个好的个人博客 http://www.phpac.com/315.html


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值