Có phương thức ma thuật nào mà khi gọi một phương thức từ một đối tượng, trước tiên hãy gọi một phương thức ma thuật. Giống như phương thức __call, nhưng phương thức này sẽ chỉ được kích hoạt nếu không tìm thấy phương thức.
Vì vậy, trong trường hợp của tôi, tôi muốn một cái gì đó như thế này:
lớpMyClass
{
chức năng công cộng __startMethod ( $method, $args )
{
// một phương thức vừa được gọi nên phương thức này được gọi đầu tiên
echo ' [bắt đầu] ';
}
chức năng công cộng helloWorld ( )
{
echo ' [Xin chào]';
}
}
$obj = MyClass mới();
$obj->helloWorld();
//Đầu ra:
[bắt đầu] [Xin chào]
Có điều đó trong PHP không? ?
Không có cách trực tiếp nào để thực hiện việc này, nhưng đối với tôi, có vẻ như bạn đang cố gắng triển khai một dạng lập trình hướng theo khía cạnh. Có một số cách để đạt được điều này trong PHP, một cách là thiết lập lớp của bạn như thế này:
lớpMyClass
{
chức năng công cộng __startMethod ( $method, $args )
{
// một phương thức vừa được gọi nên phương thức này được gọi đầu tiên
echo ' [bắt đầu] ';
}
chức năng công cộng _helloWorld ( )
{
echo ' [Xin chào]';
}
chức năng công cộng __call($method, $args)
{
_startMethod($method, $args);
$actualMethod = '_'.$method;
call_user_func_array(array($this, $actualMethod), $args);
}
}
$obj = MyClass mới();
$obj->helloWorld();
Tra cứu các cách khác để triển khai AOP trong PHP và xem cách nào phù hợp nhất với bạn (Tôi sẽ xem liệu tôi có thể tìm thấy liên kết ở đâu đó không).
EDIT: Đây là tập tin dành cho bạn../../../assets/Bachelorscripties/07-MFAPouw.pdf
Tôi là một lập trình viên xuất sắc, rất giỏi!