PHP中的interface有什么用处

PHP 中的 Interface 在工程项目中是非常有用的。其最大的用处就在于为未来的类切换与拓展保留足够的兼容性这种灵活地兼容性,是一个 PHP项目多年维护后才能体会到的。
PHP 中的 Interface 在工程项目中是非常有用的。其最大的用处就在于
为未来的类切换与拓展保留足够的兼容性
这种灵活地兼容性,是一个 PHP项目多年维护后才能体会到的。
这里我以 Laravel 框架的工程项目举例说明。
比如我们有一个数据表,名为 products ,里面存储了许多商品的信息。
对于新手来说,要对这个类进行操作,一般的做法就是建立一个 控制器(Controller),将对于该表的 “新改读删(CURD)”都放在其中。这是官方教程中的方法
<?php
namespace App\Http\Controller;
…
class ProductController extends Controller
{
public function index(){ … };
public function create(Request $request){ … };
….
}
?>
这样并不错,但未来要做修改的时候,每次都要修改这个类,而有的操作其实是反复写的,无法复用。
所以在工程项目中,一般都不会按照 官方教程这么写,这里就需要用 interface 了。
我们先建立一个针对 Product 的服务操作接口
<?php
namespace App\Repositories\Product;
interface ProductRepository{
public function create(array $data);
public function find($id=null);
public function delete($id=null);
….
}
?>
这里定义了所需的功能函数,再实现一个对应的类
<?php
namespace App\Repositories\Product;
use App\Models\Product;
class ProductEloquent implememts ProductReposity
{
public function create(array $data){ … };
public function find($id=null){ … };
public function delete($id=null){ … };
….
}
?>
将原有的 Controller 类拆分到两个文件中,我们就可以完成如下工作:
<?php
/** use App\Repositories\ProductEloquent; **/
use App\Repositories\ProductReposity;
?>
<?php
namespace App\Providers;
use App\Repositories\ProductRepository;
use App\Repositories\ProductEloquent;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
$this->app->singleton(ProductRepository::class, ProductEloquent::class);
}
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
//
}
}
延伸阅读:
1、接口的方法必须是公开的。
2、接口的方法默认是抽象的,所以不在方法名前面加abstract。
3、接口可以定义常量,但不能定义成员属性,常量的定义和用法和类中常量一样。
4、类可以实现多个接口(相当于把多个功能集于一身,如手机实现了小灵通、MP3、MP4的功能)
5、接口也可以继承接口。
最后建议,企业在引入信息化系统初期,切记要合理有效地运用好工具,这样一来不仅可以让公司业务高效地运行,还能最大程度保证团队目标的达成。同时还能大幅缩短系统开发和部署的时间成本。特别是有特定需求功能需要定制化的企业,可以采用我们公司自研的企业级低代码平台:织信Informat。 织信平台基于数据模型优先的设计理念,提供大量标准化的组件,内置AI助手、组件设计器、自动化(图形化编程)、脚本、工作流引擎(BPMN2.0)、自定义API、表单设计器、权限、仪表盘等功能,能帮助企业构建高度复杂核心的数字化系统。如ERP、MES、CRM、PLM、SCM、WMS、项目管理、流程管理等多个应用场景,全面助力企业落地国产化/信息化/数字化转型战略目标。 版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们微信:Informat_5 处理,核实后本网站将在24小时内删除。版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系邮箱:hopper@cornerstone365.cn 处理,核实后本网站将在24小时内删除。
相关文章推荐
低代码开发是一种创新的应用开发模式,它通过可视化界面、预置组件和拖拽式操作,让用户无需编写大量代码即可快速构建应用。
织信低代码作为国内主流的企业级低代码开发平台之一,为企业提供高效、便捷的应用开发解决方案。
· 数据引擎:支持多达9个大类、37种字段组件,拖拽即可生成对应表单,满足企业多样化的数据管理需求。
· 流程引擎:采用可视化拖拽+连线操作,遵循BPMN2.0规范,支持多种流程模式,帮助企业实现业务流程的自动化管理。
· 权限引擎:提供团队、应用、数据三级权限管控,保障数据安全与业务合规。
· 自动化蓝图:支持可视化搭建业务流程。
· JavaScript脚本:支持前端业务逻辑开发。
· Java扩展包:支持后端复杂业务逻辑开发。
· 自定义API:支持与第三方系统集成。
织信低代码平台提供丰富的组件和模板,用户可以根据企业需求灵活配置应用,快速构建符合企业业务需求的应用系统。同时,织信低代码平台支持与第三方系统集成,实现数据的共享和业务的协同,打破数据孤岛,提升企业运营效率。
各行业用户的共同选择







