PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (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:
скопировать код в буфер обмена
<?PHP
class prefe {
private static $i ;
private function __conctruct( ) { } //сделали конструктор приватным, запретив тем самым создавать экземпляр обьекта
public static function geti( ) {
self :: $i = new prefe( ) ; //создаем экземпляр обьекта
}
return self :: $i ;
}
public function setn( $k , $n ) {
$this -> n [ $k ] = $v ;
}
public function getn( $k ) {
return $this -> n [ $k ] ;
}
}
$n_dump = prefe:: geti ( ) ;
$n_dump -> setn ( 'nn' , 'lolll' ) ;
unset ( $n_dump ) ; //удаляем ссылку
$n_dump = prefe:: geti ( ) ;
print $n_dump -> getn ( 'nn' ) . "\n " ; //выведет lollll
?>
идентичный код из учебника
PHP:
скопировать код в буфер обмена
class Preferences {
private $props = array ( ) ; private static $instance ;
private function __construct( ) { }
public static function getInstance( ) {
if ( empty ( self :: $instance ) ) { self :: $instance = new Preferences( ) ;
}
return self :: $instance ;
}
public function setProperty( $key , $val ) {
$this -> props [ $key ] = $val ;
}
public function getProperty( $key ) {
return $this -> props [ $key ] ;
}
}
$pref = Preferences:: getInstance ( ) ;
$pref -> setProperty ( "name" , "matt" ) ;
unset ( $pref ) ; // remove the reference
$pref2 = Preferences:: getInstance ( ) ;
print $pref2 -> getProperty ( "name" ) . "\n " ; // demonstrate value is not lost
первый код не работает, код из учебника работает
в чем я накосячил?
уже пол часа смотрю, не нахожу ошибки
lowmax
Отправлено: 20 Августа, 2012 - 15:25:05 • Тема: Вопрос по движку. как применить этот класс • Форум: Объектно-ориентированное программирование
Ответов: 3 Просмотров: 1196
нужно ли писать перед функциями public
правильней так
или так?
PHP:
скопировать код в буфер обмена
class my {
public function __construct( ) { }
public function my( ) { }
public static function myfun( ) { }
public function __destruct( ) { }
}
___________________________
вопрос по движку
это какой то паттерн или просто самописный класс?
PHP:
скопировать код в буфер обмена
class Simpla
{
// Свойства - Классы API
private $classes = array ( 'config' => 'Config' ,
'request' => 'Request' ,
'db' => 'Database' ,
'settings' => 'Settings' ,
'design' => 'Design' ,
'products' => 'Products' ,
'variants' => 'Variants' ,
'categories' => 'Categories' ,
'brands' => 'Brands' ,
'features' => 'Features' ,
'money' => 'Money' ,
'pages' => 'Pages' ,
'blog' => 'Blog' ,
'cart' => 'Cart' ,
'image' => 'Image' ,
'delivery' => 'Delivery' ,
'payment' => 'Payment' ,
'orders' => 'Orders' ,
'users' => 'Users' ,
'coupons' => 'Coupons' ,
'comments' => 'Comments' ,
'feedbacks' => 'Feedbacks' ,
'notify' => 'Notify'
) ;
// Созданные объекты
private static
$objects = array ( ) ;
/**
* Конструктор оставим пустым, но определим его на случай обращения parent::__construct() в классах API
*/
public function __construct( )
{
}
/**
* Магический метод, создает нужный объект API
*/
public function __get( $name )
{
// Если такой объект уже существует, возвращаем его
if ( isset ( self :: $objects [ $name ] ) ) {
return ( self :: $objects [ $name ] ) ;
}
// Если запрошенного API не существует - ошибка
{
return null ;
}
// Определяем имя нужного класса
$class = $this -> classes [ $name ] ;
// Подключаем его
include_once ( 'api/' . $class . '.php' ) ;
// Сохраняем для будущих обращений к нему
self :: $objects [ $name ] = new $class ( ) ;
// Возвращаем созданный объект
return self :: $objects [ $name ] ;
}
}
как применяется этот класс?
и для чего в нем используется self?
ведь нет статических методов
исходник
вообще этот движок грамотно реализован или можно было как то иначе построить логику?
какой патерн лучше всего использовать для построения своего интернет магазина, чтоб потом не пришлось переписывать
лично мне в нем все понравилось, сейчас пытаюсь разобрать все по частям
платить 400$ как то не хочется тем более там привязка к домену за эти деньги
хочу написать свой на основе этого
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
А как передать вот такую хрень в эту функцию?????????????????????????????????????????????????????
запарился
этот код выдает предупреждение
все начиналось отсюда
http://forum.php.su/topic.php?fo...1&topic=6792
приходится использовать вот такую хренатень
PHP:
скопировать код в буфер обмена
private function sourceout( $fun , $arg ) {
$res = '' ;
case 1:
$res = $this -> tpl -> { $fun } ( $arg [ 0] ) ;
break ;
case 2:
$res = $this -> tpl -> { $fun } ( $arg [ 0] , $arg [ 1] ) ;
break ;
case 3:
$res = $this -> tpl -> { $fun } ( $arg [ 0] , $arg [ 1] , $arg [ 2] ) ;
break ;
case 4:
$res = $this -> tpl -> { $fun } ( $arg [ 0] , $arg [ 1] , $arg [ 2] , $arg [ 3] ) ;
break ;
case 5:
$res = $this -> tpl -> { $fun } ( $arg [ 0] , $arg [ 1] , $arg [ 2] , $arg [ 3] , $arg [ 4] ) ;
break ;
}
//$res=call_user_func_array(array($this, "tpl", $fun),$arg);
return $res ;
}
но это не вариант, откуда же я знаю сколько значений в массиве
помогите кто знает как правильно передать $this->tpl->{$fun} в call_user_func_array()
по идее нужно в виде строки
но тогда на что будет указывать $this
либо нужна какая то оберка, либо чтото в версии php
у меня версия 5.0 и менять на >=5.3 не намерян в ближайшее время
lowmax
Отправлено: 17 Августа, 2012 - 18:02:49 • Тема: Как передать в функцию аргументы не в виде массива, которые находятся в массиве • Форум: Вопросы новичков
Ответов: 2 Просмотров: 222
(разбиение массива на аргументы и передача в функцию php)
Есть массив
и есть функция в классе
Как реализовать нечто подобное:
т.е. в цикле перебрать количество $arguments и через запятую вызвать функцию
Проблема в том что функция printout() не может принять массив как аргумент (она реализована и перелопачивать ее никак нельзя, слишком большой проект)
может есть готовая функция которая принимает аргументы
lowmax
Отправлено: 07 Августа, 2012 - 15:51:06 • Тема: Кэширование что это такое и зачем нужно? • Форум: Вопросы новичков
Ответов: 3 Просмотров: 176
На счет оперативной памяти если можно поподробней
Может есть какие примеры и функции PHP?
и еще вопрос как проверить что файл занят на ПХП? ну когда в него идет запись и если кото получает к нему доступ чтоб сделать редирект на другой файл
lowmax
Отправлено: 07 Августа, 2012 - 14:51:14 • Тема: Кэширование что это такое и зачем нужно? • Форум: Вопросы новичков
Ответов: 3 Просмотров: 176
Правильно ли я мыслю?
Есть блог, точнее CMS в которой есть админ панель
+ все посетители могут участвовать в рейтинге статей и оставлять комментарии
Что мне нужно сделать
Создать в БД отдельную таблицу в которой будет храниться время обновления на сайте и время создания кэша
теперь когда на сайте происходит событие:
- пользователь участвовал в рейтинге
- пользователь оставил комментарий
- админ добавил статью или поменял чтото в настройках
в БД должно сохраниться время изменения и время создания кэша
в папке КЭШ должен сохраниться файл который при заходе на сайт будет прямиком грузиться из этой папки, а не генерироваться куча запросов к базе
только вот в выше написаном вроде вообще не требуется таблица в БД
поделитесь пожалуйста опытом
lowmax
Отправлено: 05 Августа, 2012 - 20:37:20 • Тема: Регулярное выражение, помогите составить • Форум: Вопросы новичков
Ответов: 1 Просмотров: 80
есть вот такие теги
вариант 1
вариант 2
вариант 3
вариант 4
CODE (
htmlphp ):
скопировать код в буфер обмена
<!-- [ tag= [ это нужно вытащить тоже] [ и это тоже вытянуть] [ и это, количество скобочек не ограничено] .......... ] -->
это нужно вытащить
<!-- [ / 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 ExBB FM 1.0 RC1. InvisionExBB