PHP.SU

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

Страниц (3): « 1 [2] 3 »

> Найдено сообщений: 39
lowmax Отправлено: 23 Августа, 2012 - 02:02:37 • Тема: Построение дерева php+mysql • Форум: Программирование на PHP

Ответов: 2
Просмотров: 291
Ищу информацию где в базе MySQL дерево хранится в таблице состоящей из 5 столбиков
Короче самое простое дерево можно построить с помощью рекурсии и таблицы из 2-х столбиков
id|родитель
а мне нужна расширенная версия с исходником и информация для чего используются еще 3 дополнительных столбца
lowmax Отправлено: 23 Августа, 2012 - 01:45:05 • Тема: Что такое git ? • Форум: Программирование на PHP

Ответов: 2
Просмотров: 270
Если можно напишите в общем, для чего используется в PHP, какие есть аналоги и как устроена эта система, в общем ее принцип работы
lowmax Отправлено: 21 Августа, 2012 - 13:27:11 • Тема: Где я накосячил? • Форум: Объектно-ориентированное программирование

Ответов: 1
Просмотров: 784
Написал свой код

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. class prefe {
  4.         private $n=array();
  5.         private static $i;
  6.        
  7.         private function __conctruct() { }//сделали конструктор приватным, запретив тем самым создавать экземпляр обьекта
  8.        
  9.         public static function geti() {
  10.                 if(empty(self::$i)) {
  11.                         self::$i=new prefe();//создаем экземпляр обьекта
  12.                 }
  13.                 return self::$i;
  14.         }
  15.        
  16.         public function setn($k,$n) {
  17.                 $this->n[$k]=$v;
  18.         }
  19.        
  20.         public function getn($k) {
  21.                 return $this->n[$k];
  22.         }
  23. }
  24.  
  25. $n_dump=prefe::geti();
  26. $n_dump->setn('nn','lolll');
  27.  
  28. unset($n_dump);//удаляем ссылку
  29.  
  30. $n_dump=prefe::geti();
  31. print $n_dump->getn('nn')."\n";//выведет lollll
  32. ?>
  33.  


идентичный код из учебника

PHP:
скопировать код в буфер обмена
  1.  
  2. class Preferences {
  3.     private $props = array();
  4.     private static $instance;
  5.  
  6.     private function __construct() { }
  7.  
  8.     public static function getInstance() {
  9.         if ( empty( self::$instance ) ) {
  10.             self::$instance = new Preferences();
  11.         }
  12.         return self::$instance;
  13.     }
  14.  
  15.     public function setProperty( $key, $val ) {
  16.         $this->props[$key] = $val;
  17.     }
  18.  
  19.     public function getProperty( $key ) {
  20.         return $this->props[$key];
  21.     }
  22. }
  23.  
  24.  
  25. $pref = Preferences::getInstance();
  26. $pref->setProperty( "name", "matt" );
  27.  
  28. unset( $pref ); // remove the reference
  29.  
  30. $pref2 = Preferences::getInstance();
  31. print $pref2->getProperty( "name" ) ."\n"; // demonstrate value is not lost
  32.  


первый код не работает, код из учебника работает

в чем я накосячил?
уже пол часа смотрю, не нахожу ошибки
lowmax Отправлено: 20 Августа, 2012 - 16:30:38 • Тема: Вопрос по движку. как применить этот класс • Форум: Объектно-ориентированное программирование

Ответов: 3
Просмотров: 1196
что то и в правду я затупил...

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

теперь ясно что тут используется этот патерн
lowmax Отправлено: 20 Августа, 2012 - 15:25:05 • Тема: Вопрос по движку. как применить этот класс • Форум: Объектно-ориентированное программирование

Ответов: 3
Просмотров: 1196
нужно ли писать перед функциями 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$ как то не хочется тем более там привязка к домену за эти деньги
хочу написать свой на основе этого
lowmax Отправлено: 20 Августа, 2012 - 14:43:49 • Тема: Self и static • Форум: Объектно-ориентированное программирование

Ответов: 2
Просмотров: 1327
в чем отличие?

PHP:
скопировать код в буфер обмена
  1. class func {
  2.  
  3.         static function user($name) {
  4.                 //тут код
  5.         }
  6.  
  7.         static function admin() {
  8.                 return func::user('admin');
  9.         }
  10.  
  11. }


PHP:
скопировать код в буфер обмена
  1. class func {
  2.  
  3.         static function user($name) {
  4.                 //тут код
  5.         }
  6.  
  7.         static function admin() {
  8.                 return self::user('admin');
  9.         }
  10.  
  11. }


одинаковы ли эти примеры?
lowmax Отправлено: 18 Августа, 2012 - 00:31:09 • Тема: вопрос по call_user_func_array() • Форум: Объектно-ориентированное программирование

Ответов: 3
Просмотров: 1537
OrmaJever пишет:
ааа, прочитал в соседней теме что проблема в обьекте, его некуда влепить. Для вызова метода достаточно передавать масив, нулевым индексом которого будет обьект, а первым имя метода

call_user_func_array(array($this->tpl, $fun) ,$arg);


спасибо!!! Улыбка

А работать одинаково будет в php 5.0 и более поздних версиях?

P.S.
а то например в 5.3 уже не поддерживается, а в 5.0 все ок
lowmax Отправлено: 17 Августа, 2012 - 23:40:46 • Тема: вопрос по call_user_func_array() • Форум: Объектно-ориентированное программирование

Ответов: 3
Просмотров: 1537
А как передать вот такую хрень в эту функцию?????????????????????????????????????????????????????
запарился

PHP:
скопировать код в буфер обмена
  1. fuction user($fun,$arg) {
  2.  
  3. return call_user_func_array($this->tpl->{$fun},$arg);
  4.  
  5. }


этот код выдает предупреждение

все начиналось отсюда
http://forum.php.su/topic.php?fo...1&topic=6792

приходится использовать вот такую хренатень
PHP:
скопировать код в буфер обмена
  1.  
  2. private function sourceout($fun,$arg) {
  3.                 $res='';
  4.                 switch(count($arg)) {
  5.                         case 1:
  6.                                 $res=$this->tpl->{$fun}($arg[0]);
  7.                         break;
  8.                         case 2:
  9.                                 $res=$this->tpl->{$fun}($arg[0],$arg[1]);
  10.                         break;
  11.                         case 3:
  12.                                 $res=$this->tpl->{$fun}($arg[0],$arg[1],$arg[2]);
  13.                         break;
  14.                         case 4:
  15.                                 $res=$this->tpl->{$fun}($arg[0],$arg[1],$arg[2],$arg[3]);
  16.                         break;
  17.                         case 5:
  18.                                 $res=$this->tpl->{$fun}($arg[0],$arg[1],$arg[2],$arg[3],$arg[4]);
  19.                         break;
  20.                 }
  21.                 //$res=call_user_func_array(array($this, "tpl", $fun),$arg);
  22.                 return $res;
  23.         }


но это не вариант, откуда же я знаю сколько значений в массиве

помогите кто знает как правильно передать $this->tpl->{$fun} в call_user_func_array()
по идее нужно в виде строки
но тогда на что будет указывать $this
либо нужна какая то оберка, либо чтото в версии php
у меня версия 5.0 и менять на >=5.3 не намерян в ближайшее время

??? Непонял!
lowmax Отправлено: 17 Августа, 2012 - 20:25:26 • Тема: Как передать в функцию аргументы не в виде массива, которые находятся в массиве • Форум: Вопросы новичков

Ответов: 2
Просмотров: 222
EuGen пишет:
func_get_args
?


эта функция для получения аргументов, а мне наоборот их нужно составить из массива и передать функции

в принципе я нашел вот что

call_user_func_array()

но блин, я что то нифига не нашел в описание что нибудь по поводу класса
хотя для функции

call_user_func()

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

интересно а как быть с такой проблемой в JavaScript?

придет что то новое на ум пишите...
(Добавление)
Вот тут нашел ясные примеры с классами

call_user_func_array()
lowmax Отправлено: 17 Августа, 2012 - 18:02:49 • Тема: Как передать в функцию аргументы не в виде массива, которые находятся в массиве • Форум: Вопросы новичков

Ответов: 2
Просмотров: 222
(разбиение массива на аргументы и передача в функцию php)

Есть массив



и есть функция в классе

PHP:
скопировать код в буфер обмена
  1.  
  2. class user {
  3. function printout() {
  4.  
  5. }
  6. }
  7.  



Как реализовать нечто подобное:

PHP:
скопировать код в буфер обмена
  1. printout($arguments[0],$arguments[1],$arguments[2]...);


т.е. в цикле перебрать количество $arguments и через запятую вызвать функцию

PHP:
скопировать код в буфер обмена
  1. printout(тут аргументы $arguments через запятую);


Проблема в том что функция printout() не может принять массив как аргумент (она реализована и перелопачивать ее никак нельзя, слишком большой проект)

может есть готовая функция которая принимает аргументы
lowmax Отправлено: 07 Августа, 2012 - 15:51:06 • Тема: Кэширование что это такое и зачем нужно? • Форум: Вопросы новичков

Ответов: 3
Просмотров: 176
На счет оперативной памяти если можно поподробней
Может есть какие примеры и функции PHP?

и еще вопрос как проверить что файл занят на ПХП? ну когда в него идет запись и если кото получает к нему доступ чтоб сделать редирект на другой файл
lowmax Отправлено: 07 Августа, 2012 - 14:51:14 • Тема: Кэширование что это такое и зачем нужно? • Форум: Вопросы новичков

Ответов: 3
Просмотров: 176
Правильно ли я мыслю?

Есть блог, точнее CMS в которой есть админ панель
+ все посетители могут участвовать в рейтинге статей и оставлять комментарии

Что мне нужно сделать

Создать в БД отдельную таблицу в которой будет храниться время обновления на сайте и время создания кэша

теперь когда на сайте происходит событие:
- пользователь участвовал в рейтинге
- пользователь оставил комментарий
- админ добавил статью или поменял чтото в настройках

в БД должно сохраниться время изменения и время создания кэша

в папке КЭШ должен сохраниться файл который при заходе на сайт будет прямиком грузиться из этой папки, а не генерироваться куча запросов к базе


только вот в выше написаном вроде вообще не требуется таблица в БД

поделитесь пожалуйста опытом
lowmax Отправлено: 05 Августа, 2012 - 20:48:13 • Тема: Есть ли аналог str_replace() работающий быстрее? • Форум: Вопросы новичков

Ответов: 4
Просмотров: 331
Есть ли аналог функции str_replace() который работает быстрее?

У меня происходит >100 вызова этой функции за раз, поэтому очень интересует время потраченное на выполнение этой функции
lowmax Отправлено: 05 Августа, 2012 - 20:37:20 • Тема: Регулярное выражение, помогите составить • Форум: Вопросы новичков

Ответов: 1
Просмотров: 80
есть вот такие теги

вариант 1

CODE (htmlphp):
скопировать код в буфер обмена
  1. <!--[tag]-->
  2. это нужно вытащить
  3. <!--[/teg]-->
  4.  


вариант 2

CODE (htmlphp):
скопировать код в буфер обмена
  1. <!--[tag=[это нужно вытащить тоже]]-->
  2. это нужно вытащить
  3. <!--[/teg]-->
  4.  


вариант 3

CODE (htmlphp):
скопировать код в буфер обмена
  1. <!--[tag=[это нужно вытащить тоже][и это тоже вытянуть]]-->
  2. это нужно вытащить
  3. <!--[/teg]-->
  4.  


вариант 4

CODE (htmlphp):
скопировать код в буфер обмена
  1. <!--[tag=[это нужно вытащить тоже][и это тоже вытянуть][и это, количество скобочек не ограничено]..........]-->
  2. это нужно вытащить
  3. <!--[/teg]-->


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

(нужно вытянуть все что между <!--[]-->)
lowmax Отправлено: 05 Августа, 2012 - 20:28:29 • Тема: Шаблонизатор, что что шустрее • Форум: Объектно-ориентированное программирование

Ответов: 11
Просмотров: 3051
caballero пишет:
Тебя тут никто силой не держит.
Ответили тебе по существу. Шаблонизатор твой не имеет смысла а следоватеьно и вопрос какое из бессмысленных решений лучше.


вопрос был другим:

что быстрее работает fopen или include?

в первом шаблоне если его подрубить через include он выполниться за время x
а если шаблон 2 открыть с помощью fopen и разобрать его по блокам <!--[ то это займет время y
так что будет больше x или y и на сколько

откуда я знаю может include реализован так же как и вариант 2 с fopen

p.s. смысл всегда есть

Страниц (3): « 1 [2] 3 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB