internations / type-jail
强制类型约束
v3.0.0
2022-05-10 12:03 UTC
Requires
- php: >=7.4
- friendsofphp/proxy-manager-lts: ~1
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-10 17:24:36 UTC
README
强制执行对象的超类型合约
用法
use InterNations\Component\TypeJail\Factory\SuperTypeFactory; use InterNations\Component\TypeJail\Factory\JailFactory; use InterNations\Component\TypeJail\Factory\SuperTypeJailFactory; $file = new SplFileObject(__FILE__); $factory = new JailFactory(); $file = $factory->createInstanceJail($file, 'SplFileInfo'); // Will return true var_dump($file instanceof SplFileInfo); // Will return the file path because that method is declared in SplFileInfo $file->getFilePath(); // Will throw an exception indicating a type violation because that method // is declared in SplFileObject $file->flock(); $factory = new SuperTypeJailFactory(); $file = $factory->createInstanceJail($file, 'SplFileInfo'); // Will return false var_dump($file instanceof SplFileInfo); // Will return the file path because that method is declared in SplFileInfo $file->getFilePath(); // Will throw an exception indicating a type violation because that method // is declared in SplFileObject $file->flock(); $factory = new SuperTypeFactory(); $file = $factory->createInstanceJail($file, 'SplFileInfo'); // Will return false var_dump($file instanceof SplFileInfo); // Will return the file path because that method is declared in SplFileInfo $file->getFilePath(); // Fatal error: method not found $file->flock();
致谢
站在 ocramius/proxy-manager 的肩膀上,由 Marco Pivetta 开发,这使得与代理一起工作变得超级简单。