liziyu 发布的文章

1.第一步,创建项目:

vue create MyObject —default

2.第二步,在项目根目录下新建vue.config.js文件:

const path = require('path');
function resolve (dir) {
    return path.join(__dirname, dir)
}
module.exports = {
    lintOnSave: true,
    runtimeCompiler: true, // 使用构建版vue
    chainWebpack: (config)=>{
        config.resolve.alias
            .set('assets',resolve('src/assets'))
            .set('components',resolve('src/components'))
            //.set('easyui',resolve('src/easyui')) // 我这边是购买 了源代码,直接复制到src目录下使用

    }
}

第3步:进入项目录

cd MyObject

第4步:按照官方文档往下即可

https://www.jeasyui.net/download/vue.html

参考转载:https://www.jianshu.com/p/fa7156d008a3

1. isset()可以一次对多个变量进行判断

if(isset($a) || isset($b) || isset($c)){
//todo...
}

优化为:

if(isset($a,$b,$c)){
//todo...
}


2. 可以直接利用array_key_exists()进行某键的直接判断

$result = ['a' => 'li', 'b' => 'yu'];
if(is_array('a', array_keys($result)){
//todo...
}

优化为:

if(array_key_exists('a', $result)){
//todo...
}


3. 数组循环之前可以不用“为空”测试,直接循环

$myArray = [];

//....

if(empty($myArray)){
    foreach($myArray as $key=>$val){
        //toding...
    }
}
优化为:
//可以不用进行为空判断直接循环,因为数组内部已经内置了空数组的判断。
foreach($myArray as $key=>$val){
    //toding...
}

4. 大块if块的包裹,可以提前判断返回

if($a){
    //...
   //N多行
    //...

    return 'secuss';
    //...
}
可有优化为:
if(!$a){
    return false;
}
//todo...
return 'success';


class User extends Model
{
    #以下属性和方法都不是必须的,但是一般都要按需求定义一些
    
 
    //定义关联的表名,不定义的话默认此模型关联的表为 模型名s (users)
    protected $table = 'user';
   
 
    /******字段相关*******/
    #定义主键字段名,默认是id
    protected $primaryKey = 'uid';
    #定义字段白名单,允许操作表中的哪些字段
    protected $fillable = ['uid','name'];
    #定义字段黑名单,不允许操作表中哪些字段
    protected $guarded = [];
    //1、使用model::create([])等方法直接对orm对象操作使,必须定义$guarded或者$fillable
    //2、使用$m = new model();然后$m->save()的方式不需要定义
    //3、简便的方式就是定义$fillable = [];
    
    #定义隐藏的字段
    protected $hidden = [];
    
    /******时间管理******/
    #定义是否默认维护时间,默认是true.改为false,则以下时间相关设定无效
    public $timestamps = true;
    #定义数据行创建时间和修改时间的字段名称。默认created_at,updated_at,没有设null
    const CREATED_AT = 'created';
    const UPDATED_AT = null;
 
    #此属性决定插入和取出数据库的格式,默认datetime格式,'U'是int(10)
    protected $dateFormat = 'U';
    //如果不设置,无论存储格式是datetime还是int,则取出时是Carbon对象
    //Carbon对象返给前端时自动变为datetime字符串,后端谨慎处理
 
    #如果数据库存的是datetime或者没定义$dateFormat,又想取出的时候是int...
    public function getDates(){
        return ['created_at'];
    }
    //这里只能是created_at,updated_at,不是你自己的字段
    
    #软删除字段deleted_at
    use Illuminate\Database\Eloquent\SoftDeletes;
    protected $dates = ['deleted_at'];
    #查询数据时会自动排除掉deleted_at非null的数据,若想带上使用User::withTrashed()
    #删除某条数据时使用$user->delete()然后save()即可。deleted_at由null变为时间.
 
 
 
 
    /******序列化******/
    #toArray和toJson就是序列化方法,都是递归的。
 
    #把ORM查询的数据自动转换。例如把int转boolean,时间戳转时间,json转成数组等。
    protected $casts = [
        'created'   => 'date:Y-m-d',
        'updated'   => 'datetime:Y-m-d H:i',
        'jsonData'  => 'array',
        'intSwitch' => 'boolean'
    ];
    //关于这个时间的序列化,当作为接口返回的时候有效,如果直接直接页面渲染无效.
    //时间序列化,当$timestamp为true时,无论是update还是new的方式插入新数据,都要是datetime
    //注意取出的jsonData即是数组,而插入jsonData时也得是数组,不要json_encode
 
 
 
 
    /**自定义数据返回***/
    #再如果,你想拿出来就是'2018/08/08 12:00'这种自定义格式,好比'sa_time'
    public function getSaTimeAttribute($value){
        return date('Y/m/d H:i',$value);
    }
    //注意方法名是根据字段来的。同理,这种方法可以处理任何字段
    
}

转自:https://blog.csdn.net/z772532526/article/details/81302990

【1】

$arr = [1,2,3];
[$a,$b,$c] = $arr;
var_dump($a,$b,$c);

//1, 2, 3

【2】

intdiv(10,3);

//3

【3】

isset($_GET('a') ?? 0;
等价于:
isset($_GET('a') ? isset($_GET('a') : 0;

/**
 * 计算工作日天数结束日期
 * 作者:beyonder@163.com
 * 吐槽一下,一开始低估了这个算法的复杂性,用了两天时间,真的不容易,写好的算法必须要沉一下心来理清逻辑才能写出来,虽然写得还不是很完美,但在这小佩服一下自己。
 * startDate:开始日期
 * days:天数
 * holidays:法定节假日字符串
 * workDays:调休上班日字符串
 * return:到期日期(不含)
 */
function getWorkingEndDate($startDate,$days,$holidays,$workDays)
{
    //开始日期
    $startDate = strtotime($startDate);
    $daysnum=0;
    $num=0;
    //法定节假日数组
    $holiDays=explode(",",$holidays);
    //调休工作日数组
    $workDays=explode(",",$workDays);
    //法定节假日
    $holiday=0;
    //周末
    $weekday=0;
    //调休工作日
    $workday=0;
    //循环daysnum
    while(($daysnum)<intval($days)){
        //临时日期
        $tempdate=$startDate+$num*(60*60*24);
        //周末天数
        if(date("N", $tempdate) == 6 || date("N", $tempdate) == 7)
            $weekday++;
        //周末天数遇到法定节假日减去周末天数
        if(in_array(date('Y-m-d',$tempdate),$holiDays)&&(date("N", $tempdate) == 6 || date("N", $tempdate) == 7))
            $weekday--;
        //法定节假日天数
        if(in_array(date('Y-m-d',$tempdate),$holiDays))
            $holiday++;
        //法定调休工作日
        if(in_array(date('Y-m-d',$tempdate),$workDays))
            $workday++;
        //循环自增
        $num++;
        //天数=循环天数+工作日-节假日-周末
        $daysnum=$num+$workday-$holiday-$weekday;
    }
    //最后计算天数正好与之前计算相反
    //天数=需要的工作日-法定调休工作日+法定节假日+周末天数
    $daysnum=$days-$workday+$holiday+$weekday;
    //返回
    return date("Y-m-d H:i:s",$startDate+$daysnum*(60*60*24));
}


/**
 * 计算两日期之间的工作日天数
 * 作者:beyonder@163.com
 * startDate:开始日期
 * endDate:结束日期
 * holidays:法定节假日
 * workDays:调休上班日
 */
function getWorkingDays($startDate, $endDate, $holidays,$workDays)
{
    $endDate = strtotime($endDate);
    $startDate = strtotime($startDate);
    $days = ($endDate - $startDate) / 86400 + 1;
    $no_full_weeks = floor($days / 7);
    $no_remaining_days = fmod($days, 7);
    $the_first_day_of_week = date("N", $startDate);
    $the_last_day_of_week = date("N", $endDate);
    if ($the_first_day_of_week <= $the_last_day_of_week) {
        if ($the_first_day_of_week <= 6 && 6 <= $the_last_day_of_week) $no_remaining_days--;
        if ($the_first_day_of_week <= 7 && 7 <= $the_last_day_of_week) $no_remaining_days--;
    } else {
        if ($the_first_day_of_week == 7) {
            $no_remaining_days--;
            if ($the_last_day_of_week == 6) {
                $no_remaining_days--;
            }
        } else {
            $no_remaining_days -= 2;
        }
    }
    $workingDays = $no_full_weeks * 5;
    if ($no_remaining_days > 0) {
        $workingDays += $no_remaining_days;
    }
    //法定休息日计算
    $holidays=explode(",",$holidays);
    for($i=0;$i<count($holidays);$i++){
        $time_stamp = strtotime($holidays[$i]);
        if ($startDate <= $time_stamp && $time_stamp <= $endDate && date("N", $time_stamp) != 6 && date("N", $time_stamp) != 7)
            $workingDays--;
    }
    //调休工作日调整
    $workDays=explode(",",$workDays);
    for($i=0;$i<count($workDays);$i++){
        $time_stamp = strtotime($workDays[$i]);
        if ($startDate <= $time_stamp && $time_stamp <= $endDate && (date("N", $time_stamp) == 6 || date("N", $time_stamp) == 7))
            $workingDays++;
    }
    return $workingDays;
}

简单的闭包(匿名函数)

function test_closure($name, Closure $clo){
    echo 'Hello {$name} ';
    $clo();
}

test_closure('Lily', function() {
    echo ' you are like...';
});

class A 
{
    private static $_instance = null;
    
    private function __construct(){}
    
    private function __clone(){}
    
    public static function getInstance()
    {
        if(! (self::$_instance instanceof self)){
            self::$_instance = new self();
        }
        return self::$_instance;
    }
}

$obj = A::getInstance();