Bạn có thể chắt lọc những giao diện với tôi InterfaceDistiller:
namespace com\github\gooh\InterfaceDistiller;
include __DIR__ . '/../src/autoload.php';
var_dump(extension_loaded('phalcon')); // should be true
$phalconClasses = new \RegexIterator(
new \ArrayIterator(get_declared_classes()),
'/^Phalcon/'
);
foreach ($phalconClasses as $phalconClass)
{
$reflector = new \ReflectionClass($phalconClass);
$methodIterator = new \ArrayIterator($reflector->getMethods());
$distillate = new Distillate;
$distillate->setInterfaceName($reflector->getNamespaceName());
$distillate->setExtendingInterfaces(
implode(',', $reflector->getInterfaceNames())
);
foreach ($methodIterator as $method) {
$distillate->addMethod($method);
}
$file = new \SplTempFileObject(-1);
$writer = new Distillate\Writer($file);
$writer->writeToFile($distillate);
$file->rewind();
$file->fpassthru();
}
này sau đó sẽ tạo ra những điều sau đây đầu ra:
<?php
interface Phalcon
{
public function __clone();
public function __construct($message /* = unresolvable */, $code /* = unresolvable */, $previous /* = unresolvable */);
public function getMessage();
public function getCode();
public function getFile();
public function getLine();
public function getTrace();
public function getPrevious();
public function getTraceAsString();
public function __toString();
}
// this continues for all classes in the extension
Xem full file holding all distilled interfaces of Phalcon
Lưu ý rằng InterfaceDistiller chỉ có thể tạo giao diện. Vì vậy, bạn sẽ không nhận được một kết hợp của lớp xương và giao diện, nhưng chỉ giao diện.
Một lưu ý khác là các phương thức giao diện sẽ được công khai vì, các phương thức giao diện phải được công khai. Bạn có thể tweak the writer để sử dụng chế độ hiển thị thực. Hoặc bạn có thể giới hạn các phương thức mà Distiller sẽ chưng cất.
Như bạn có thể thấy một số phần của API không thể giải quyết được. Điều này là do InterfaceDistiller sử dụng Reflection để chưng cất Giao diện từ các lớp và một số giá trị không chỉ có sẵn theo cách này. Cân nhắc điền các giá trị không thể giải quyết bằng tay.
Mặc dù không hoàn hảo cho UseCase của bạn, tuy nhiên, nó sẽ mang đến cho bạn một khởi đầu tuyệt vời.
Nếu bạn quyết định điều chỉnh và hoàn chỉnh hồ sơ vì vậy nó hoàn toàn có thể sử dụng, xem xét việc gửi một yêu cầu Pull với toàn bộ hồ sơ cho các folks Phalcon
Cảm ơn bạn rất nhiều! Đây là những gì tôi đang tìm kiếm !!! –
trong Thư viện bên ngoài thêm đường dẫn đến 'phalcon-devtools \ ide \ 1.3.1 \ Phalcon' – Patrioticcow
Đối với phiên bản 3, tôi thêm đường dẫn toàn cục của mình:'/usr/local/share/composer/vendor/phalcon-devtools/ide' – JREAM