php反射机制

作者: 时间: 2016-04-11 评论: 暂无评论

一、反射是什么
反射是操纵面向对象范型中元模型的API(php5)
通过ReflectionClass,我们可以得到Person类的以下信息:
1)常量 Contants
2)属性 Property Names
3)方法 Method Names静态
4)属性 Static Properties
5)命名空间 Namespace
6)Person类是否为final或者abstract

<?php
class Person{
    public $id;
    public $username;
    private $pwd;
    private $sex;
    public  function run(){
        echo  '<br/>running';
    }
}

$class=new ReflectionClass('Person'); //建立反射类
$instance=$class->newInstance(); //实例化
print_r($instance); //Person Object ( [id] => [username] => [pwd:Person:private] => [sex:Person:private] => )

$properties = $class->getProperties();
foreach($properties as $property) {
    echo "<br/>".$property->getName();
}
//默认情况下,ReflectionClass会获取到所有的属性,private 和 protected的也可以。如果只想获取到private属性,就要额外传个参数:
//$private_properties = $class->getProperties(ReflectionProperty::IS_PRIVATE);
//可用参数列表:
//               ReflectionProperty::IS_STATIC
//               ReflectionProperty::IS_PUBLIC
//               ReflectionProperty::IS_PROTECTED
//               ReflectionProperty::IS_PRIVATE
//     如果要同时获取public 和private 属性,就这样写:ReflectionProperty::IS_PUBLIC | ReflectionProperty::IS_PROTECTED。
//   通过$property->getName()可以得到属性名。

$class->getMethods();
//获取方法(methods):通过getMethods() 来获取到类的所有methods。

$instance->run(); //执行Person 里的方法getBiography
//或者:
$ec=$class->getmethod('run');  //获取Person 类中的getName方法
$ec->invoke($instance);

php 字符转实体

作者: 时间: 2016-03-31 评论: 暂无评论
 <?php 
    echo html_entity_decode(str);//字符转实体  
 ?>

laravel事务处理

作者: 时间: 2016-02-18 评论: 暂无评论
DB::transaction(function()
{
    DB::table('users')->update(['votes' => 1]);

    DB::table('posts')->delete();
});
 //在 transaction 闭包若抛出任何异常会导致事务自动回滚

或者


DB::beginTransaction();

if($user->save()){
    DB::commit();//如果处理成功,通过 commit 的方法提交事务
}else{
    DB::rollback();//如果处理失败,通过 rollback 的方法回滚事务
}



非常简单的Laravel安装

作者: 时间: 2016-01-22 评论: 暂无评论

安装方法是非常简单的,而且不会出错。
屏幕快照 2016-01-22 上午12.32.09.png
1.到官网下载5.0版本。
地址:http://www.golaravel.com/download/
2.解压laravel-v5.0.22.zipl得到aravel-v5.0.22,把laravel-v5.0.22 改成你的项目名字LaravelBaseDemo。
3.把项目放在本地服务器网站根目录里面。
4.设置权限(如果是windows可以跳过此步骤,mac与linux需要设置权限)。

cd LaravelBaseDemo
chmod -R 777 storage* #5.0和5.1  如果是4.X 应该是 chmod -R 777 app/storage* 
composer dump-autoload  #4.X必须安装composer

5.直接访问 http://127.0.0.1/LaravelBaseDemo/public/

使用CURL下载文件

作者: 时间: 2016-01-21 评论: 暂无评论

-o:将文件保存为命令行中指定的文件名的文件中
-O:使用URL中默认的文件名保存文件到本地

# 将文件下载到本地并命名为mygettext.html
curl -o mygettext.html http://www.gnu.org/software/gettext/manual/gettext.html
 
# 将文件保存到本地并命名为gettext.html
curl -O http://www.gnu.org/software/gettext/manual/gettext.html