当前位置: 首页 > wzjs >正文

网站建设了解一下图片网站建设的威胁

网站建设了解一下图片,网站建设的威胁,小程序api调用,莱芜房产网官网首先什么是 Trait ? Trait 是 PHP 5.4 引入的一个代码复用机制,它解决了 PHP 单继承的限制问题。 Trait 基本概念 Trait 是一种代码复用机制,即可以理解为 可重用的方法集合 trait Loggable {public function log($message) {echo "…

首先什么是 Trait ?

Trait 是 PHP 5.4 引入的一个代码复用机制,它解决了 PHP 单继承的限制问题。

Trait 基本概念

Trait 是一种代码复用机制,即可以理解为 可重用的方法集合

trait Loggable {public function log($message) {echo "Log: $message\n";}
}

Trait 的特点

  • 不是类:不能实例化

  • 不是接口:可以包含具体实现

  • 解决单继承限制:一个类可以使用多个 Trait,这是重点,因为PHP只能单继承,很好弥补了这一弱势。

  • 代码复用:可以理解为帮助方法,多个类使用,不用重复多次写

Trait的 使用 ,Use 即可

class User {use Loggable ;
}//laravel 常见的伪删除,等等
class User extends Model {use SoftDeletes; // 软删除功能
}

多个 Trait 使用


class MyClass {use TraitA, TraitB;
}

当多个 Trait 有同名方法时

trait A {public function conflict() { echo "A"; }
}
trait B {public function conflict() { echo "B"; }
}
class MyClass {use A, B {A::conflict insteadof B;  // 使用 A 的 conflict 方法B::conflict as conflictB; // 将 B 的 conflict 方法重命名}
}

Trait 与继承的优先级

方法解析优先级(从高到低):

  1. 当前类中的方法权重最高

  2. 其次是Trait 中的方法

  3. 最后继承的父类中的方法

Trait 还有一些其他的特性 等等,大家去看看语法。重点来了

Laravel 开发统一的 JSON 响应格式,用来做Api响应。

直接上源码:

<?php
namespace App\Http\Trait;use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Response;trait ResponseJson
{/*** 默认成功状态码*/protected int $successCode = 200;/*** 默认错误状态码*/protected int $errorCode = 101;/*** 返回成功 JSON 响应** @param string $message 成功消息* @param mixed $data 返回数据* @param array $headers 附加头信息* @param int $httpStatus HTTP 状态码* @return JsonResponse*/public function success(string $message,mixed  $data = [],array  $headers = [],int    $httpStatus = 200): JsonResponse{return Response::json(['code' => $this->successCode,'message' => $message,'data' => $data,], $httpStatus, $headers);}/*** 返回错误 JSON 响应** @param string $message 错误消息* @param int|null $code 业务错误码* @param mixed $data 附加数据* @param array $headers 附加头信息* @param int $httpStatus HTTP 状态码* @return JsonResponse*/public function error(string $message,int    $code = NULL,mixed  $data = [],array  $headers = [],int    $httpStatus = 400): JsonResponse{return Response::json(['code' => $code ?? $this->errorCode,'message' => $message,'data' => $data,], $httpStatus, $headers);}/*** 根据数据自动返回成功或错误响应** @param array $responseData 必须包含 code, message, data* @param array $headers 附加头信息* @return JsonResponse*/public function autoResponse(array $responseData, array $headers = []): JsonResponse{if(!isset($responseData['code'], $responseData['message'])){return $this->error('Invalid response format', 500, [], $headers, 500);}return $responseData['code'] === $this->successCode? $this->success($responseData['message'], $responseData['data'] ?? [], $headers): $this->error($responseData['message'], $responseData['code'], $responseData['data'] ?? [], $headers);}
}

Api接口直接使用

class TestController extends Controller
{use ResponseJson;public function index(){//return $this->success('success', [1, 2, 3]);return $this->error('error', 11, [1, 2, 3]);}
}

代码分析

  1. 封装了成功和错误和自定义的响应方法,success ,error,autoResponse
  2. 支持自定义 HTTP 状态码和 headers
  3. success ,error 保持一致的参数顺序 (消息 -> 数据/代码 -> headers -> HTTP状态码),使用的时候尽量减少干扰
  4. 区分业务编码 code 和 HTTP 状态码 httpStatus,一个是业务上的区分,一个是接口通信上的状态。
  5. 增强的 autoResponse 方法,处理自定义的相关情况
  6. 严格的参数类型声明和验证
  7. 灵活性、可维护性和类型安全性

文章转载自:

http://hmYWOv7o.rzczL.cn
http://sCdTKnmg.rzczL.cn
http://hxQkq6m0.rzczL.cn
http://MqglqhV4.rzczL.cn
http://IuRPErzv.rzczL.cn
http://dCTmkbC9.rzczL.cn
http://29scPhTf.rzczL.cn
http://ipeSItnq.rzczL.cn
http://HVDaE0U5.rzczL.cn
http://1XPBKMmJ.rzczL.cn
http://pa5GVDIs.rzczL.cn
http://tu0svDk5.rzczL.cn
http://X7KzEbqy.rzczL.cn
http://mCO9uqCm.rzczL.cn
http://Xd79nknR.rzczL.cn
http://rgZDILVr.rzczL.cn
http://4sNISM5C.rzczL.cn
http://r5tbrizM.rzczL.cn
http://KVUowJJf.rzczL.cn
http://TIWHgZZW.rzczL.cn
http://sHi1dkEh.rzczL.cn
http://w7vcNGSv.rzczL.cn
http://50dJEmms.rzczL.cn
http://FfOKF9lm.rzczL.cn
http://1FZCJwaJ.rzczL.cn
http://ffpn2Mp6.rzczL.cn
http://apadoZGS.rzczL.cn
http://kDAUovwo.rzczL.cn
http://Ko8FksMG.rzczL.cn
http://9groGiFo.rzczL.cn
http://www.dtcms.com/wzjs/770766.html

相关文章:

  • 兰州学校网站建设做直播网站用什么程序
  • 镇江市精神文明建设网站百度小程序seo
  • 个人可以建设头条网站吗app网站有哪些
  • 两个相同的网站对做优化有帮助liunx wordpress 搭建
  • 龙岗做网站北京到安阳的火车
  • 进空间的网站凡客诚品的配送方式
  • 赣州市赣县区建设局网站北京营销推广公司
  • 怎么做网站的导航网站开发团队需要哪些
  • 给别人做网站 网站违法了如何做电商运营推广
  • 龙岩网站建设企业做母婴网站设计思路
  • 做一个网站需要什么手把手教你做网站 3
  • 广州网站优化网站建设公司介绍简介
  • 网站建设推广唯心磁遁8网站前期设计
  • 手机网站 普通网站网站建设策划书参考案例
  • html5网站图标哪里有建站代理加盟
  • 要想做一个好网站需要多久杭州app开发公司都集中在哪里
  • 网站建设高端设计广州外贸型网站设计
  • 医院网站建设意义足球哪个网站做的比较好
  • 网站的建设运营收费是哪些中国住房和城乡建设部查询网站6
  • 怎么申请建立网站wordpress主题需要ftp
  • 河北seo网站开发wordpress评论差价
  • 网站建设留言板怎么做如何做超一个电子商务网站
  • php网站开发是什么意思做软件与做网站建设有什么区别
  • 湖南系统建站怎么用如何构建成交型网站
  • 电子商务网站建设与规划案例做淘宝优惠券网站
  • 个人网站建设如何选服务器关于建设工程资料的网站
  • 网站建设制作网络营销公司泉州互联网公司排名
  • 烟台做网站的价格陕西建设厅官网首页
  • 广州营销型网站制作江苏建筑模板厂家
  • 如何用手机制作网站汕头h5建站