您可以使用 Injector 重写 SilverStripe 请求时加载的类Image
,但不建议使用 Image。如果你愿意,你可以这样做:
# File: mysite/_config/injector.yml
---
Name: myinjectorconfig
---
SilverStripe\Core\Injector\Injector:
SilverStripe\Assets\Image:
class: MyImage
您的课程看起来就像您问题中的示例。
相反,如果您想添加两个新的 PHP 方法,您可以使用扩展:
use SilverStripe\ORM\DataExtension;
class MyImageExtension extends DataExtension
{
public function generateRotateClockwise(GD $gd)
{
return $gd->rotate(90);
}
public function generateRotateCounterClockwise(GD $gd)
{
return $gd->rotate(270);
}
}
然后将其应用于带有配置的图像:
# File: mysite/_config/extensions.yml
---
Name: myextensions
---
SilverStripe\Assets\Image:
extensions:
- MyImageExtension
这会将两个公共方法添加到使用 Image 类的任何位置。