如何将PHP类拆分为单独的文件?
我想在Objective-C中做一些类似类类的事情,在一个文件中定义一个类,在那里实现一些核心方法,然后在另一个文件中实现一些帮助器方法,没有子类化或接口,只需“继续”类。
可能在 PHP 中?
我想在Objective-C中做一些类似类类的事情,在一个文件中定义一个类,在那里实现一些核心方法,然后在另一个文件中实现一些帮助器方法,没有子类化或接口,只需“继续”类。
可能在 PHP 中?
从 PHP 5.4 开始,您可以使用 Traits 来完成此操作。引用官方文档:
Traits [使] 开发人员能够在位于不同类层次结构中的多个独立类中自由重用方法集。[...]Trait 类似于类,但仅用于以细粒度和一致的方式对功能进行分组。无法自行实例化 Trait。它是传统继承的补充,可以水平组合行为;也就是说,在不需要继承的情况下应用类成员。
通过使用 trait,您可以将解决横切问题的帮助程序方法存储在一个中心位置,并在您需要的任何类中使用这些方法。
// File "HelperMethodTrait.php"
trait HelperMethodTrait
{
public function myIncredibleUsefulHelperFunction()
{
return 42;
}
}
// File "MyClass.php"
class MyClass
{
use HelperMethodTrait;
public function myDomainSpecificFunction()
{
return "foobar";
}
}
$instance = new MyClass();
$instance->myIncredibleUsefulHelperFunction(); // 42
a-priori PHP不会通过语言构造给你这个功能,整个类必须在一个文件中。
现在有一些技巧可以完成这些事情,但它们对CPU的要求非常高:
例如,您可以在不同文件之间取消关联类,然后加载文件并使用整个代码构建单个字符串,然后执行eval(string)来解释类并将其构建到可运行的代码区域中。
顺便说一句,由于许多原因,这不是一个好主意