Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прошу помощи в правке класса 
V
    Опции темы
Zmiuko
  Дата 23.3.2009, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


http://zmiuko.ru
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 8.10.2008

Репутация: 2
Всего: 2



Пишу cms накидал следующий класс:

Код

class module
 {
    var $block_dy;
 
 function block () {
    global $_a;


    for($i=0; $i<count($_a['block']['db']);$i++) {
        $folder_b = BLC_PATH.$_a['block']['db'][$i]['1'].FILEPR.'index.php';
        echo $folder_b;
        if (file_exists($folder_b)) { include($folder_b); }
        $this->block_dy.= $_a['class']['pl']->get('block', array('titl' => $_a['block']['db'][$i]['1'], 'text' => $_a['block']['db'][$i]['1']));
    }
 }
 
    function module() {
        global $_a; $include = new uri();
        $folder = MOD_PATH.$include->curl['mod'].FILEPR.'index.php';
        if (file_exists($folder)) { 
            include($folder); 
            } else { $_a['modul']['titl'] = 'Не найден файл'; $_a['modul']['text'] = $folder;}
                $_a['modul']['block'] = $this->block();
                $this->display('design',$_a['modul']['titl'],$_a['modul']['text'],$this->block_dy);
 }
    function display_theme($a,$b,$c) {
        global $_a;
        $result = $_a['class']['pl']->get($a, array('titl' => $b, 'text' => $c));
                return $result;
    }
    function display($a,$b,$c,$d) {
        global $_a;
        echo $_a['class']['pl']->get($a, array('titl' => $b, 'text' => $c, 'block' => $d));
    }
 }
$_a['class']['pl'] = new theme('./template/');
$_a['class']['ur'] = new uri;
$_a['class']['md'] = new module;


Суть: подключаю класс парсинга шаблонов, затем парсинга урлов и сам инкулд модулей.
Хотел бы спросить, как лучше реализовать это дело на классах.

Значит класс шаблонов подключает шаблон 'название' и находит тама @text@ или @title@ правит их на содержание из двух переменных соответственно. $include->curl['mod'] - это $_GET['mod'] естестевенно. 

PM MAIL WWW ICQ Skype Jabber   Вверх
Zmiuko
Дата 24.3.2009, 06:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


http://zmiuko.ru
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 8.10.2008

Репутация: 2
Всего: 2



Просто как правильнее будет его расписать?
PM MAIL WWW ICQ Skype Jabber   Вверх
Sanchezzz
Дата 24.3.2009, 07:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



сделай у класса свойства title keywords description которые забиваются через функции далее 
используещь вункции ob_start(); 

вконце странице вывод заносишь в переменую там у тебя идет парсинг который пробежится по всему тексту и заменит втури тегов тест из свойст класса.

что дает такая конструкцияты: сможешь по ходу выполнения своего кода устанавливать заголовок. 
И ненужно @title@ просто найти тег

Код

<title> 
<meta name="description" content="" />
<meta name="keywords" content="" />







--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Zmiuko
Дата 24.3.2009, 08:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


http://zmiuko.ru
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 8.10.2008

Репутация: 2
Всего: 2



Спасибо за совет! А сам мой класс нормален?  smile 
PM MAIL WWW ICQ Skype Jabber   Вверх
Sanchezzz
  Дата 24.3.2009, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



яб переименовал методы get , set по понятнее если возможно...

и отказался бы global лично я его не использую(не где)... тем более в классе

веть удобно использовать свойства класса:
public,
private,
protected

Демо:
Код

class test {
private $a;
//...
public function getA(){
return this->a;
} 
}
$test = new "test";
$A = $test->getA();

Ну а так если работает то нормально. Видишь я не проверял smile))

Это сообщение отредактировал(а) Sanchezzz - 24.3.2009, 08:57


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Zmiuko
Дата 24.3.2009, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


http://zmiuko.ru
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 8.10.2008

Репутация: 2
Всего: 2



А если я этот класс буду использовать (я имею ввиду свойства такие как private) на php4?
PM MAIL WWW ICQ Skype Jabber   Вверх
skyboy
Дата 24.3.2009, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



private  - это не свойство, а модификатор видимости. введенный в версии 5, что можно узнать из документации. вестимо, что будет – ошибку выдаст.
PM MAIL   Вверх
Zmiuko
  Дата 24.3.2009, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


http://zmiuko.ru
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 8.10.2008

Репутация: 2
Всего: 2



Может тогда проверять версию пыха и выводить часть класса через eval() ?

Код

if( >4_c копейками) {
...
    $arg ='...private $a;...';
...
} else {
...
    $arg ='...var $a;...';
...
}


и выводить eval($arg)
PM MAIL WWW ICQ Skype Jabber   Вверх
bars80080
Дата 24.3.2009, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



а об eval() вообще забыть

гораздо проще, при заливке (установке) своей CMS (или что там?) указывать в настройках 4ый или 5й, и подгружать соответствующий файл с классами
PM MAIL WWW   Вверх
awers
Дата 24.3.2009, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: 21
Всего: 31



Цитата(Zmiuko @  24.3.2009,  11:15 Найти цитируемый пост)
Может тогда проверять версию пыха и выводить часть класса через eval() ?

Ужс. Ты лучше возьми да посмотри как работают вещи заточеные под разные версаги. bars80080 вот верно говорит =)
PM MAIL WWW ICQ Skype   Вверх
Zmiuko
  Дата 24.3.2009, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


http://zmiuko.ru
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 8.10.2008

Репутация: 2
Всего: 2



bars80080, писал:
Цитата

а об eval() вообще забыть

гораздо проще, при заливке (установке) своей CMS (или что там?) указывать в настройках 4ый или 5й, и подгружать соответствующий файл с классами 


Спасибо и верно, но почему в данной ситуации не надо использовать eval() ? Для себя интересуюсь.  smile 

awers,  писал:
Цитата

Ужс. Ты лучше возьми да посмотри как работают вещи заточеные под разные версаги. bars80080 вот верно говорит =) 

 smile ну что ж, прости дурака. Просто первые мои классы практически - исче учусь  smile 

PM MAIL WWW ICQ Skype Jabber   Вверх
bars80080
Дата 24.3.2009, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(Zmiuko @  24.3.2009,  11:48 Найти цитируемый пост)
Спасибо и верно, но почему в данной ситуации не надо использовать eval() ?

eval вообще не надо никогда использовать. эта функция на экстренный случай, когда ничем уже другим нельзя её заменить. функция eval - парсит переданную в неё строку как код. а это значит повторно запускается интерпретатор со всеми вытекающими, проверкой на синтаксис, на подключаемые функции... и прочее и прочее. короче, функция для любителей "напряжённых серверов"
PM MAIL WWW   Вверх
IZ@TOP
Дата 25.3.2009, 02:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Цитата(bars80080 @  24.3.2009,  18:35 Найти цитируемый пост)
eval вообще не надо никогда использовать. эта функция на экстренный случай, когда ничем уже другим нельзя её заменить. функция eval - парсит переданную в неё строку как код. а это значит повторно запускается интерпретатор со всеми вытекающими, проверкой на синтаксис, на подключаемые функции... и прочее и прочее. короче, функция для любителей "напряжённых серверов" 

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


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Zmiuko
  Дата 25.3.2009, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


http://zmiuko.ru
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 8.10.2008

Репутация: 2
Всего: 2



Благодарю. Надо же, не обращал внимания smile Спасибо!
PM MAIL WWW ICQ Skype Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0600 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.