easy-swoole / easyswoole

swoole,easyswoole,swoole framework
https://www.easyswoole.com/
Apache License 2.0
4.74k stars 511 forks source link

希望http有直接有效的禁止公共方法外部访问。 #495

Closed codedart2018 closed 3 years ago

codedart2018 commented 3 years ago

有种情况基类定义了一些公共方法,在http类里面相互调用,可以不定义成public到是可以禁止外部访问。但http有时候要通过参数注入到别的类里面去。这个时候不得不把方法定义成公共的。这就会造成路由地址可以访问。通过router.php自己定义到是可以禁用访问。但我每增加一个控制器就会多出很多相同的外部可访问方法。这样去定义很麻烦。希望直接禁止 _ 开头的方法路由访问。也希望Controller.php里的

        $forbidList = [
            '__hook', '__destruct',
            '__clone', '__construct', '__call',
            '__callStatic', '__get', '__set',
            '__isset', '__unset', '__sleep',
            '__wakeup', '__toString', '__invoke',
            '__set_state', '__clone', '__debugInfo',
            'onRequest'
        ];

这些可配置禁止访问。但我个人觉得 __ 打头的方法不论是public还是private一律禁止路由访问是没有毛病的。希望能增加解决下,谢谢。

kiss291323003 commented 3 years ago

请定义为保护或者是私有方法

codedart2018 commented 3 years ago

请定义为保护或者是私有方法

私有依赖注入是无法调用的