SJohnson miniblogs

  • SJohnson
    0

    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

    • mad
      0

      Ja PermissionsExt extendo Permissions, tad tev pēc tam ir jāizsauc PermissionsExt::hasUserPermission('test2');, ja vēlies iegūt to funkcionalitāti.

Atpakaļ Uz augšu