[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Пару вопросов по урокам школы
BupycAP
Здравствуйте. У меня пару вопросов по урокам школы.Один общий и один по коду.

Общий вопрос заключается в том что я пытаюсь изучать пхп. С минимальной теорией программирования и синтаксиса пхп я знаком.Функции могу искать и разбираться, не в этом проблема.Проблема в том что я хоть и могу понять код приводимый у вас в уроках школы, но не понимаю весь смысл как бы на глобальном уровне. Например почему меню делается так а не иначе.Почему например ключ устанавливается так а не иначе.То есть могу понять код но не понимаю глобальных принципов построения сайта а тупо пишу что написано и немного пытаюсь разбираться в кусках кода. В видео курсах того же Попова мало того что все ужасно написано так и даются совсем какие то детские примеры с ужасным кодом хотя сам смысл построения сайта передает.Но это слишком устаревшие принципы. Сейчас уже желательно следовать хотя бы минимальным стандартам того же MVC к примеру. Так что просто не могу понять в какую сторону смотреть и как учится?

А по коду такой вопрос :

if(IRB_REWRITE === 'on' && !empty($_GET['route']))
{
$param = explode('/', trim($_GET['route'], '/'));
$i = 0;

foreach($GET as $var => $val)
{
if(!empty($param[$i]))
$GET[$var] = $param[$i];

$i++;
}
}

не пойму зачем нужно использовать функцию trim?Судя по дебаггеру и без нее все работает корректно.Или я не прав?


Заранее спасибо.



Спустя 1 час, 3 минуты, 8 секунд (17.04.2012 - 22:55) inpost написал(а):
Когда непонятны некоторые вещи, то лучше закрепить это устным общением. Допустим пообщаться, в том же видео-уроке живом.
Или задать вопросы через соответствующую форму на ирбисе, тогда и ответ быстрее и качественнее будет.

Теперь сами вопросы: в данном случае функция trim, она урезает символы слева и справа, а именно "/", это значит, что прежде чем разложить нашу $_GET['route'] на $_GET, мы уберём в конце лишний слеш.
$_GET['page'] = 'contacts', $_GET['rem'] = 'read' , как видим в этом примере rem должен принять read, если ничего в конце не указано, но если не обработать через trim, то ссылка ввида:
site.ru/contacts/ будет отличаться от site.ru/contacts , то есть слеш в конце говорит о том, что у нас после слеша есть ещё данные, и $_GET['rem'] примет значение то, что указывается после слеша, а именно пустоту.

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

Спустя 1 час, 54 минуты, 13 секунд (18.04.2012 - 00:49) Invis1ble написал(а):
MVC - это не стандарт, а один из шаблонов проектирования

Спустя 53 минуты, 21 секунда (18.04.2012 - 01:42) walerus написал(а):
BupycAP - Я бы на Вашем месте, начал бы с "Hello World" и разбирался бы с трудностями, по мере их появления, а не сразу прыгать на амбразуру сложный и непонятный на данном этапе для Вас материал.

Купите себе книжку по PHP 5 Вам будет гораздо проще. Поверьте, когда смотришь в книгу и тут же все "тестируешь", лучше чем заткнуться в проблему и лазать по форумам ее решать, дальше "по жизни", Вам будет проще, если будете пытаться сами решить проблему.

Есть куча php.su / ru / com и так далее если влом покупать книги...

P.S. Ни в коем случае не отговариваю пользоваться форумом и другой помощью. cool.gif

Спустя 3 часа, 43 минуты, 28 секунд (18.04.2012 - 05:26) glock18 написал(а):
Цитата (inpost @ 17.04.2012 - 20:55)
Ирбис не используется в идеальном виде MVC, потому что если на секундочку представим, что он существует, то он будет неоптимизированный и неадекватный, в школе рассказывается как раз уже переделанная система.


какой интересный взгляд... а что делать, если MVC видел - радоваться чуду или плакать от его "неоптимизированности и неадекватности"?

PS: такие теории выдвигаете, а MVC то уже давно имеет пару подвидов (MVP, MVVM), да и используется широко достаточно

Спустя 16 часов, 21 минута (18.04.2012 - 21:47) BupycAP написал(а):
Цитата (walerus @ 17.04.2012 - 23:42)
BupycAP - Я бы на Вашем месте, начал бы с "Hello World" и разбирался бы с трудностями, по мере их появления, а не сразу прыгать на амбразуру сложный и непонятный на данном этапе для Вас материал.

Купите себе книжку по PHP 5 Вам будет гораздо проще. Поверьте, когда смотришь в книгу и тут же все "тестируешь", лучше чем заткнуться в проблему и лазать по форумам ее решать, дальше "по жизни", Вам будет проще, если будете пытаться сами решить проблему.

Есть куча php.su / ru / com и так далее если влом покупать книги...

P.S. Ни в коем случае не отговариваю пользоваться форумом и другой помощью.  cool.gif

С "Hello World" и т.д я уже давно разобрался.Меня интересуют принципы построения сайта.Но так как переделывать его 1000 раз не охота то сразу полез в такие вещи как MVC, одна точка входа и т.д.
А какую книгу посоветуете?Имею две книги "Создаем динамические веб-сайты с помощью PHP, MySQL и JavaScript" от O'Relly и "Разработка web-приложений с помощью php&MySQL" 3-е издание.

Спустя 19 минут, 52 секунды (18.04.2012 - 22:06) BupycAP написал(а):
Цитата (inpost @ 17.04.2012 - 20:55)
Теперь сами вопросы: в данном случае функция trim, она урезает символы слева и справа, а именно "/", это значит, что прежде чем разложить нашу $_GET['route'] на $_GET, мы уберём в конце лишний слеш.
$_GET['page'] = 'contacts', $_GET['rem'] = 'read' , как видим в этом примере rem должен принять read, если ничего в конце не указано, но если не обработать через trim, то ссылка ввида:
site.ru/contacts/ будет отличаться от site.ru/contacts , то есть слеш в конце говорит о том, что у нас после слеша есть ещё данные, и $_GET['rem'] примет значение то, что указывается после слеша, а именно пустоту.

Почему же тогда дебаггер не показывает пустоту?

Спустя 8 часов, 10 минут, 20 секунд (19.04.2012 - 06:17) inpost написал(а):
BupycAP
echo '<pre>'.print_r($GET,1);

Спустя 10 часов, 32 минуты, 31 секунда (19.04.2012 - 16:49) BupycAP написал(а):
Цитата (inpost @ 19.04.2012 - 04:17)
BupycAP
echo '<pre>'.print_r($GET,1);

И?Это тоже что и показывает дебаггер.И он показывает все корректно и без трима...

Спустя 2 минуты, 13 секунд (19.04.2012 - 16:51) inpost написал(а):
BupycAP
Я у себя попробовал, ничего норм.
site.ru/contacts/read///
И смотрим результат.
$GET['sel'] == all
$GET['num'] == 1
А не пустоте!

Спустя 10 минут, 41 секунда (19.04.2012 - 17:02) BupycAP написал(а):
Ну все наконец то дошло smile.gif. Это если у меня в ссылку нечаянно попадет лишний слеш то он его обрежет, а если нет то и суда нет.Правильно понял?

Спустя 26 минут, 59 секунд (19.04.2012 - 17:29) inpost написал(а):
BupycAP
Да, именно. Очищаем лишние слеши.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.