通过遵循OOP方法,我将可重用的方法写入特征,而不是创建普通的帮助文件。这样我就可以有组织地控制访问。为此,我创建了各种traits
,例如permissions
,auth
,settings
,helpers
等
在使用PHP超过七年后,我仍然觉得很多东西要学习。
大多数特征具有私有和静态方法。但是,helpers
特性具有所有公共方法。要调用从helpers
特征到其他特征的static
方法的任何方法,我必须使用(new self)->helper_method()
来调用它>
问题:
我想知道经常使用它是否有任何缺点?如果是的,还有什么更好的方法可以访问内部的公共方法静态方法?
示例代码
这是我要做的事的一个例子。
trait permissions {
private static function authorize() {
$role = ( new self() )->checkUserRole();
if ( $role == 'ultimate' ) {
return TRUE;
}
return FALSE;
}
}
特征认证{
public function checkUserRole( $userId = FALSE ) { $user = $userId ? getUser( $userId ) : getCurrentUser(); if ( $user ) { return $user->role; } return FALSE; }
}
class UltimatePost {
use permissions, auth, ...;
public function __construct() {
if ( ! self::authorize() ) {
return FALSE;
}
}
}
class UltimateMedia {
use permissions, auth, ...;
public function __construct() {
if ( ! self::authorize() ) {
return FALSE;
}
}
}
通过遵循OOP方法,我将可重用的方法写入特征,而不是创建普通的帮助文件。这样我就可以有组织地控制访问。为此,我创建了各种...
缺点是类的构造函数通常通常应具有