Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Вопрос по движку. как применить этот класс
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Вопрос по движку. как применить этот класс

Страниц (1): [1]
 

1. lowmax - 20 Августа, 2012 - 15:25:05 - перейти к сообщению
нужно ли писать перед функциями public

правильней так
PHP:
скопировать код в буфер обмена
  1. class my {
  2.         function __construct() {}
  3.         function my() {}
  4.         static function myfun() {}
  5.         function __destruct() {}
  6. }


или так?
PHP:
скопировать код в буфер обмена
  1. class my {
  2.         public function __construct() {}
  3.         public function my() {}
  4.         public static function myfun() {}
  5.         public function __destruct() {}
  6. }



___________________________

вопрос по движку

это какой то паттерн или просто самописный класс?

PHP:
скопировать код в буфер обмена
  1.  
  2. class Simpla
  3. {
  4.         // Свойства - Классы API
  5.         private $classes = array(
  6.                 'config'     => 'Config',
  7.                 'request'    => 'Request',
  8.                 'db'         => 'Database',
  9.                 'settings'   => 'Settings',
  10.                 'design'     => 'Design',
  11.                 'products'   => 'Products',
  12.                 'variants'   => 'Variants',
  13.                 'categories' => 'Categories',
  14.                 'brands'     => 'Brands',
  15.                 'features'   => 'Features',
  16.                 'money'      => 'Money',
  17.                 'pages'      => 'Pages',
  18.                 'blog'       => 'Blog',
  19.                 'cart'       => 'Cart',
  20.                 'image'      => 'Image',
  21.                 'delivery'   => 'Delivery',
  22.                 'payment'    => 'Payment',
  23.                 'orders'     => 'Orders',
  24.                 'users'      => 'Users',
  25.                 'coupons'    => 'Coupons',
  26.                 'comments'   => 'Comments',
  27.                 'feedbacks'  => 'Feedbacks',
  28.                 'notify'     => 'Notify'
  29.         );
  30.        
  31.         // Созданные объекты
  32.         private static $objects = array();
  33.        
  34.         /**
  35.          * Конструктор оставим пустым, но определим его на случай обращения parent::__construct() в классах API
  36.          */
  37.         public function __construct()
  38.         {
  39.         }
  40.  
  41.         /**
  42.          * Магический метод, создает нужный объект API
  43.          */
  44.         public function __get($name)
  45.         {
  46.                 // Если такой объект уже существует, возвращаем его
  47.                 if(isset(self::$objects[$name]))
  48.                 {
  49.                         return(self::$objects[$name]);
  50.                 }
  51.                
  52.                 // Если запрошенного API не существует - ошибка
  53.                 if(!array_key_exists($name, $this->classes))
  54.                 {
  55.                         return null;
  56.                 }
  57.                
  58.                 // Определяем имя нужного класса
  59.                 $class = $this->classes[$name];
  60.                
  61.                 // Подключаем его
  62.                 include_once('api/'.$class.'.php');
  63.                
  64.                 // Сохраняем для будущих обращений к нему
  65.                 self::$objects[$name] = new $class();
  66.                
  67.                 // Возвращаем созданный объект
  68.                 return self::$objects[$name];
  69.         }
  70. }
  71.  


как применяется этот класс?

и для чего в нем используется self?
ведь нет статических методов

исходник

вообще этот движок грамотно реализован или можно было как то иначе построить логику?

какой патерн лучше всего использовать для построения своего интернет магазина, чтоб потом не пришлось переписывать

лично мне в нем все понравилось, сейчас пытаюсь разобрать все по частям
платить 400$ как то не хочется тем более там привязка к домену за эти деньги
хочу написать свой на основе этого
2. caballero - 20 Августа, 2012 - 15:41:38 - перейти к сообщению
так почитай что такое public и узнаешь где надо а где нет. Или пиши везде public
(Добавление)
Цитата:
как применяется этот класс?

спроси у авторов движка

Цитата:
ведь нет статических методов

ты ленишся даже посмотреть код который копируешь - потрудись найти как объявляется objects
(Добавление)
Цитата:
какой патерн лучше всего использовать для построения своего интернет магазина,

не бывает паттернов для интернет магазина. Разберись сначала с синтаксисом обычных классов.
3. lowmax - 20 Августа, 2012 - 16:30:38 - перейти к сообщению
что то и в правду я затупил...

сам же писал этот пример
http://forum.php.su/topic.php?fo...2&topic=1762

теперь ясно что тут используется этот патерн
4. digi - 20 Августа, 2012 - 16:49:39 - перейти к сообщению
область видимости надо всегда указывать явно.

если у вас есть стремление писать качественный код, то следует как можно меньше юзать статические методы.

касательно паттерна Registry, лучше присмотреться к Dependency Injection.

 

Powered by ExBB FM 1.0 RC1