Ir viens svētdienas projekts, atkal taisu savu CMS un kaut kādu moduļu sistēmu. Tātad, štelle tāda. class Permissions
{
function hasUserPermission($perm)
{
if ($perm == 'test')
{
echo 'is k.';
return true;
}
else
{
return false;
}
}
}
class PermissionsExt extends Permissions
{
function hasUserPermission($perm)
{
if ($perm == 'test2' or $perm == 'test')
{
echo 'is k.';
return true;
}
else
{
return false;
}
}
}
Permissions::hasUserPermission('test2');
Kādēļ tas nestrādā? Ideja tāda, ka PermissionsExt atrodas citā failā. Sistēma vispār būtu drusku citādāka, klasēs glabātos tikai defaultās, datubāzē varētu overraidot, bet tas nav pārāk svarīgi. :D
Un šis workaround's īsti neder, jo vajadzētu universālu sistēmu - pievieno, un vienkārši ir.
class Permissions
{
function hasUserPermission($perm)
{
if ($perm == 'test')
{
echo 'is k.';
return true;
}
else
{
PermissionsExt::hasUserPermission($perm);
}
}
}
class PermissionsExt extends Permissions
{
function hasUserPermission($perm)
{
if ($perm == 'test2' or $perm == 'test')
{
echo 'is k.';
return true;
}
else
{
return false;
}
}
}
Permissions::hasUserPermission('test2');
Lol, es zinu, kapēc tas nestrādā, tātad, kā varētu sataisīt tā, lai strādātu, kā aprakstiju? :D