查找PHP应用程序外部调用

时间:2015-06-13 16:40:26

标签: php

假设我有一个用本地主机用PHP编写的Monolithic和庞大的代码库项目

是否有一些服务能够在运行时报告所有外部调用?有些代码可能直接使用php或使用curl代替。

也许正确的方法不是php应用程序来做这件事,而是某种守护进程可以从操作系统中提供这些信息。我使用的是Mac OS X.

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用 Observer Pattern ,SPL类\SplObserver\SplSubject中已存在类。 如果你有一个非常大的项目,你肯定已经抽象了大部分项目并且有卷曲调用和数据库等的包装器(如果没有,你应该考虑采用相应的设计模式!)。

class YourCurlWrapper implements \SplSubject {
    public function setObservers($observers) {
        $this->observers = $observers;
        return $this;
    }
    //notify observers(or some of them)
    public function notify() {
        foreach ($this->observers as $value) {
            $value->update($this);
        }
    }
}

查看课程SplObserverSplSubject

http://php.net/manual/de/class.splobserver.php

如果外部呼叫是外发网络连接,您可以使用ngreptcpdump来收集外发或传入流量

第三种可能性,可能是最简单和最快的,是设置代理(如鱿鱼)。您可以在其日志文件中看到所有调用的URL,而不必更改任何PHP代码。只是你的环境需要知道代理:

http_proxy http://localhost:3218
https_proxy http://localhost:3218
ftp_proxy http://localhost:3218