PHP.SU

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

Страниц (16): В начало « ... 4 5 6 7 [8] 9 10 11 12 ... » В конец

> Найдено сообщений: 232
_Dark_ Отправлено: 26 Июня, 2013 - 22:13:26 • Тема: сессия внутри класса • Форум: Вопросы новичков

Ответов: 8
Просмотров: 386
Документация:

Цитата:
Переменные, которые являются членами класса, называются "свойства". Также их называют, используя другие термины, такие как "аттрибуты" или "поля", но в рамках этой документации, мы будем называть их свойствами. Они определяются с помощью ключевых слов public, protected, или private, следуя правилам правильного описания переменных. Это описание может содержать инициализацию, но инициализация должна применяться для константных значений - то есть, переменные должны быть вычислены во время компиляции и не должны зависеть от информации программы во время выполнения для их вычисления.


Короче говоря, так делать нельзя, массив сессии не удовлетворяют этому требованию.
_Dark_ Отправлено: 26 Июня, 2013 - 22:00:09 • Тема: switch(NULL) • Форум: Вопросы новичков

Ответов: 4
Просмотров: 302
Да я вам больше скажу:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. switch(0) // NULL, FALSE,
  4. {
  5.     case(true === false):
  6.         echo "First Case\n";
  7.    
  8.     case(1 > 1000):
  9.         echo "Second Case\n";
  10.        
  11.     case('STRING' === 'AnotherString'):
  12.         echo "Third Case\n";
  13. }


При таком условии PHP выполняет все case в цикле, они же неверные, а в условии стоит FALSE.
Вывод:
Цитата:
First Case
Second Case
Third Case

Закатив глазки
_Dark_ Отправлено: 26 Июня, 2013 - 21:43:55 • Тема: Правильная работа с шаблонизатором • Форум: Вопросы новичков

Ответов: 33
Просмотров: 1091
LIME пишет:
_Dark_ при этом ты выводишь все все в браузер
а у меня формируется строка и выводится последним действием в точке входа

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

LIME пишет:
ну что за чушь

LIME пишет:
есть что-то сказать кроме пустых слов?


Подмигивание

В общем, мне надоело, да и занят я, поэтому от этой темы я отхожу.
За диалог спасибо, но лучше str_replace в while не делать, не говоря уже о написании своего шаблонизатора на языке, который изначально разрабатывался шаблонизатором (хотя это вообще никакой аргумент, но для вида сойдет) Закатив глазки
_Dark_ Отправлено: 26 Июня, 2013 - 21:32:52 • Тема: Правильная работа с шаблонизатором • Форум: Вопросы новичков

Ответов: 33
Просмотров: 1091
PHP:
скопировать код в буфер обмена
  1.         while ($row = $result->fetch_assoc()) {
  2.             $row['price-fm'] = number_format($row['price-fm'], 0, '', ' ');
  3.             $row['price'] = number_format($row['price'], 0, '', ' ');
  4.             $lbls = array_map(function($a) {
  5.                         return '{' . $a . '}';
  6.                     }, array_keys($row));
  7.             $for.= str_replace($lbls, $row, $matches[1]);
  8.         }

(Добавление)
Это, в общем, не суть, суть вот:
Спойлер (Отобразить)

Спойлер (Отобразить)


Я не думаю, что есть разница в читаемости, а современные IDE отлично дополняют PHP код, при этом мы избавились от не нужного str_replace, тем самым сэкономив память и время.
_Dark_ Отправлено: 26 Июня, 2013 - 21:28:00 • Тема: Правильная работа с шаблонизатором • Форум: Вопросы новичков

Ответов: 33
Просмотров: 1091
LIME пишет:
а я думал очевидно что код ужасен
почему ужасен????
есть что-то сказать кроме пустых слов?


Да, этот код ужасен, мне он не нравится, хотя бы потому что замена тегов в цикле вывода не самая лучшая идея Подмигивание
(Добавление)
LIME пишет:
каких??? прям одни загадки)))

Это моя ошибка, общаюсь с тремя разными людьми на разные темы, немного не переключился с одного контекста на другой.
(Добавление)
И вообще, эта тема чревата очередным бессмысленным спором, в котором каждый останется при своем мнении.
_Dark_ Отправлено: 26 Июня, 2013 - 21:21:16 • Тема: Правильная работа с шаблонизатором • Форум: Вопросы новичков

Ответов: 33
Просмотров: 1091
LIME пишет:
может объяснишь почему?
неочевидно

Потому что я уже привел выше код.
_Dark_ Отправлено: 26 Июня, 2013 - 21:19:17 • Тема: Правильная работа с шаблонизатором • Форум: Вопросы новичков

Ответов: 33
Просмотров: 1091
Мелкий пишет:
Шаблонизатор как гарант того, что во вьюху не переползёт бизнес-логика.
Т.е. если шаблонизатор не даёт никаких средств, кроме логики вывода данных и строг в этом плане - это гарантирует, что разработчики не станут пихать в шаблон лишнюю логику или вовсе SQL.

Это очень сомнительное преимущество, т.к. это искусственное ограничение.
При грамотной архитектуре этого не произойдет, а плохо построенное приложение шаблонизатор не спасет.
_Dark_ Отправлено: 26 Июня, 2013 - 21:16:50 • Тема: Правильная работа с шаблонизатором • Форум: Вопросы новичков

Ответов: 33
Просмотров: 1091
LIME пишет:
так я показал вроде
посмотри внимательно на шаблон

Не знаю, что вы там показали, пример по виду вообще из воздуха, ничего не понятно, но:

Спойлер (Отобразить)


И да, тот код в вашем сообщении ("модуль использующий шаблон") как минимум ужасен и сравнивать его с кодом выше, а так же с приведенным вами после кодом странно, я даже не буду объяснять почему, очевидно.
(Добавление)
esterio пишет:
у меня знакомый верстальщик не знающый ни ПХП ни шаблонизаторы. И когда я ему показал два синтаксиса с шаблонизатором и без, то ему удобней было именно с шаблонизатором

Современная реалия такова, что в профессиональных студиях все верстальщики, которые выполняют непосредственную подготовку дизайна под CMS, знают PHP хотя бы поверхностно.
_Dark_ Отправлено: 26 Июня, 2013 - 20:42:19 • Тема: Правильная работа с шаблонизатором • Форум: Вопросы новичков

Ответов: 33
Просмотров: 1091
А что шаблонизатор делает?

Заменяет <?= $var ?> на {$var} ?
<? foreach($array AS $val): ?> на {foreach($array AS $val)} ?

<? include('file') ?> на {include file='file'} ?

Кому легче становится верстать? То, что верстальщикам — это
LIME пишет:
распространенное неправильное мнение


Покажите мне пример, когда использование шаблонизатора действительно оправдано, оно серьезно упрощает код и ради этого можно пожертвовать производительностью и поддержкой еще одного синтаксиса.
(Добавление)
Алексеей пишет:
Может для вас это так, но новичкам, которые не знают даже html, это очень помогает. У меня заказ, создать панель управления для одного сайта, и все уже сделал, осталось решить только данную задачу.

Новичкам как раз лучше не использовать никаких шаблонизаторов.
_Dark_ Отправлено: 26 Июня, 2013 - 20:37:33 • Тема: реализация интерфейса • Форум: Вопросы новичков

Ответов: 20
Просмотров: 568
djud пишет:
как я понял, в интерфейсе обявляются "пустые" методы, потом класс описывает этот метод, как его реализовать. и если два класса подключаются к одному интерфейсу, то в обоих классах должны быть абсолютно одинаковые методы?


Объявление методов должно быть одинаковым, а реализация как раз разная.
_Dark_ Отправлено: 26 Июня, 2013 - 19:44:44 • Тема: Нужна помощь в правке • Форум: Вопросы новичков

Ответов: 4
Просмотров: 164
Вместо этого удобнее использовать альтернативный синтаксис:

PHP:
скопировать код в буфер обмена
  1. <? if(true): ?>
  2.  
  3. <? endif; ?>
  4.  
  5. <? foreach($array AS $a): ?>
  6.  
  7. <? endforeach; ?>


и т.д.
_Dark_ Отправлено: 26 Июня, 2013 - 19:35:10 • Тема: реализация интерфейса • Форум: Вопросы новичков

Ответов: 20
Просмотров: 568
djud пишет:
я не просил загнать данные, это я сам сделал, если без интерфейса, а вот как отредактировать интерфейс не знаю, у меня один и тот же метод из интерфейса, реализуется в двух классах, вычисления разные соотв. и переменные разные.
а если твой ответ, думаешь помог офигенно, то посмотри ответ мелкого, там как раз для чайника всё понятно, раздел на форуме такой, что поделать.

Хватит ныть.

Открываем документацию.
С ходу смотрим:

Цитата:
Замечание:

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


Это так сложно? Я потратил на это около 40 секунд, включая поиск документации на PHP.net. Не умея пользоваться такими банальными вещами как документация языка — у вас большие проблемы будут.
_Dark_ Отправлено: 26 Июня, 2013 - 19:25:56 • Тема: реализация интерфейса • Форум: Вопросы новичков

Ответов: 20
Просмотров: 568
djud пишет:
Я тебе ещё раз говорю не нравится не читай. Не засоряй эфир бесполезной болтавнёй, пока оба бан не словили.

Если вы так относитесь к критике — у меня для вас плохие новости.
Интерфейсы подробно описаны в документации PHP.
_Dark_ Отправлено: 26 Июня, 2013 - 19:24:43 • Тема: Правильная работа с шаблонизатором • Форум: Вопросы новичков

Ответов: 33
Просмотров: 1091
Ну наверное header.tpl тоже нужно распарсить перед инклудом?
А вообще, шаблонизаторы бред, бросайте это.
_Dark_ Отправлено: 26 Июня, 2013 - 11:51:10 • Тема: Счетчик посещаемости • Форум: Вопросы новичков

Ответов: 12
Просмотров: 339
Ну вы картинку счетчика поставьте, при загрузке картинки придут cookies, в чем проблема то?

Страниц (16): В начало « ... 4 5 6 7 [8] 9 10 11 12 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB