• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
Registry / رجیستری
#1
کلاس Registry آماده شد:
کد پی‌اچ‌پی:
<?php

if(!defined('LOCAL_ACCESS'))
{
    exit;
}

final class 
Registry extends ArrayObject
{
    protected 
$_registry NULL;

    public function 
__call($Method$Arguments)
    {
        return 
call_user_func_array(array($this->_registry$Method), $Arguments);
    }

    public function 
__construct($Array = array(), $Flags parent::ARRAY_AS_PROPS)
    {
        
parent::__construct($Array$Flags);
    }

    public function 
__destruct()
    {
        unset(
$this->_registry);
    }

    public function 
reset()
    {
        
$this->_registry = array();
    }

    public function 
add($Name$Value)
    {
        
$this->_registry[$Name] = $Value;
    }

    public function 
addMultiple($Input = array())
    {
        if(
is_array($Input) || is_object($Input))
        {
            foreach(
$Input as $_Key=>$_Value)
            {
                
$this->add($_Key$_Value);
            }
        }
    }

    public function 
addDefault($Name$DefaultValue NULL)
    {
        return 
$this->add($Name$this->get($Name$DefaultValue));
    }

    public function 
remove($Name)
    {
        unset(
$this->_registry[$Name]);
    }

    public function 
removeMultiple($Input NULL)
    {
        if(
is_array($Input) || is_object($Input))
        {
            foreach(
$Input as $_Value)
            {
                
$this->remove($_Value);
            }
        }

        return 
FALSE;
    }

    public function 
exists($Name)
    {
        return isset(
$this->_registry[$Name]);
    }

    public function 
existsInArray($Object$Name)
    {
        if(
$this->exists($Name) && @in_array($Object$this->$_registry[$Name]))
        {
            return 
TRUE;
        }

        return 
FALSE;
    }

    public function 
get($Name)
    {
        if(
array_key_exists($Name$this->_registry))
        {
            return 
$this->_registry[$Name];
        }

        return 
NULL;
    }

    public function 
getClass()
    {
        return 
get_class($this->_registry);
    }

    public function 
toString()
    {
        return (string)
get_class($this);
    }

    public function 
toArray()
    {
        return (array)
$this->_registry;
    }

    public function 
toObject()
    {
        return (object)
$this->_registry;
    }

تست و لینکش کنید.
هرچیزیش هم که فکر می کنید اضافست حذف کنید.


بنظرم داخل همه کلاس ها یه ثابت VERSION بزاریم برای هندل کردن patch بین نسخه های قدیمی با جدید.
وبلاگ: Yousha.Blog.ir


 کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بالاتر => نگهداری بهتر

  پاسخ
تشکر شده توسط : Reza
#2
خوبه
فقط version نمی خواد. commit توی github کافیه. اینجوری سخت میشه. میشه برای کل هسته ورژن در نظر گرفت.
البته حالا که کد نویسی می کنیم بهتره PSR-2 رو هم رعایت کنیم. چند تا نکته ای که وجود داره و من مستقیم نقل می کنم

کد:
Property names SHOULD NOT be prefixed with a single underscore to indicate protected or private visibility.
کد:
Method names MUST be declared in camelCase().

پروپرتی ها هم به روش camelCase باشه به نظر من بهتره.

بعدش یوشا اینو تست کردی؟
__call فکر کنم اشکال منطقی داره.
  پاسخ
تشکر شده توسط : Y.P.Y
#3
خب تغییرات جزیی که می خواید رو انجام بدید روش و بندازید رو پروژه
وبلاگ: Yousha.Blog.ir


 کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بالاتر => نگهداری بهتر

  پاسخ
تشکر شده توسط :
#4
پس این : http://forum.iranphp.org/Thread-%DB%8C%DA%A9-%DA%A9%D9%84%D8%A7%D8%B3-Registry-%D8%AE%D9%88%D8%A8 چیه ؟

--
اگه این مرج ها درست بشه و من از دست این Db خلاص بشم می تونم روی سایر قسمت ها هم فعال باشم.
  پاسخ
تشکر شده توسط :
#5
نقل قول:فقط version نمی خواد. commit توی github کافیه.

راسپینا رو گیت هاب هم رفته؟
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط :
#6
چرا registry رو کردید تو پوشه؟
پوشش واسه چیه؟
وبلاگ: Yousha.Blog.ir


 کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بالاتر => نگهداری بهتر

  پاسخ
تشکر شده توسط :
#7
(۱۳۹۱ مرداد ۲۴, ۰۴:۵۲ ب.ظ)Y.P.Y نوشته: چرا registry رو کردید تو پوشه؟
پوشش واسه چیه؟
عموت اینجوری خواسته Big Grin

--
خب ساختار کتابخونه همینه
حتی کلاس PDO احسان هم کنار گذاشته شده
تا بعد توی ساختار قرار بگیره.
  پاسخ
تشکر شده توسط :
#8
یا خدا

کجا و کی دیدید که رجیستری رو دا خل پوشه بزارن؟
یه single فایل مستقل رو
وبلاگ: Yousha.Blog.ir


 کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بالاتر => نگهداری بهتر

  پاسخ
تشکر شده توسط :
#9
Exception ها شو چیکار می کنی پس ؟
  پاسخ
تشکر شده توسط :
#10
آها.
فکر کردم exception دونی داریم
وبلاگ: Yousha.Blog.ir


 کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بالاتر => نگهداری بهتر

  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان