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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вопрос по движку. как применить этот класс

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
lowmax
Отправлено: 20 Августа, 2012 - 15:25:05
Post Id



Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




нужно ли писать перед функциями 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$ как то не хочется тем более там привязка к домену за эти деньги
хочу написать свой на основе этого

(Отредактировано автором: 20 Августа, 2012 - 15:36:09)

 
 Top
caballero
Отправлено: 20 Августа, 2012 - 15:41:38
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




так почитай что такое public и узнаешь где надо а где нет. Или пиши везде public
(Добавление)
Цитата:
как применяется этот класс?

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

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

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

не бывает паттернов для интернет магазина. Разберись сначала с синтаксисом обычных классов.

(Отредактировано автором: 20 Августа, 2012 - 15:46:41)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
lowmax
Отправлено: 20 Августа, 2012 - 16:30:38
Post Id



Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




что то и в правду я затупил...

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

теперь ясно что тут используется этот патерн

(Отредактировано автором: 20 Августа, 2012 - 17:38:41)

 
 Top
digi
Отправлено: 20 Августа, 2012 - 16:49:39
Post Id


Посетитель


Покинул форум
Сообщений всего: 406
Дата рег-ции: Янв. 2012  


Помог: 4 раз(а)




область видимости надо всегда указывать явно.

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

касательно паттерна Registry, лучше присмотреться к Dependency Injection.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB