## 面向对象 ### 封装 实现一个简单的计算器功能 ```php class Program { public function calculate() { $number_a = 12; $number_b = 5; $operate = '+'; $result = 0; switch ($operate) { case '+': $result = $number_a + $number_b; break; case '-': $result = $number_a - $number_b; break; case '*': $result = $number_a * $number_b; break; case '/': $result = $number_a / $number_b; break; default: # code... break; } echo $number_a . $operate . $number_b .'='. $result; } } $program = new Program(); $program->calculate(); ``` 虽然能够满足需求,但假设另外一个地方也需要用到计算,那么你这部分的代码无法直接被其他人调用,这个时候我们需要对代码进行封装
查询作用域 全局作用域 全局作用域允许你对给定模型的所有查询添加约束。使用全局作用域功能可以为模型的所有操作增加约束。 软删除功能实际上就是利用了全局作用域功能 实现一个全局作用域功能只需要定义一个实现Illuminate\Database\Eloquent\Scope接口的类,该接口只有一个方法apply,在该方法中增加查询需要的约束
## WSL2&Ubuntu 安装 LNMP 开发环境 - 更新并升级 ``` sudo apt update sudo apt upgrade ``` - 安装 nginx ``` sudo apt install nginx ``` 验证 nginx 配置 `nginx -t` 报错: ``` nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied) 2020/12/16 16:47:58 [warn] 19050#19050: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:1 nginx: the configuration file /etc/nginx/nginx.conf syntax is ok 2020/12/16 16:47:58 [emerg] 19050#19050: open() "/run/nginx.pid" failed (13: Permission denied) nginx: configuration file /etc/nginx/nginx.conf test failed ``` 原因是当前用户权限不足 `su root` 切换到 root 即可 `service nginx start` 启动服务
1:打开laradock/.env配置文件 WORKSPACE_INSTALL_WORKSPACE_SSH=true 将其改为true,然后重新build workspace 2:打开shell工具连接workspace