Забыли пароль?
Запросите новый здесь.

Автор темы: Zaxap
ID темы: 2402
Информация:
Тема содержит 16 сообщения, была просмотрена 7196 раз.
Просмотр темы
PHP-Fusion Russia » Веб-разработка » PHP
 Распечатать тему
пишу движок с нуля. вопрос по структуре (запросы из index.php (а-ля mvc) или нет)
Zaxap
Понадобилось для одного общего проекта написать движок (не использовать же жирные cms или, возможно, дырявые чужие продукты для практически одностраничного сайта...)
Решил сделать все с нуля, дабы понимать, что вообще происходит (чужой код - это, зачастую, ад с черными дырами;)) - разработал структуру, и все такое...
Соорудил форму регистрации, логина (конечно, таблицы в бд - все, как у людей), функцию проверки "авторизован ли пользователь", также нашел и переделал под себя шаблонизатор (на ООП) в 55 строк кода... - в общем, минимализм))
Вопрос встал на том, как это все запускать... кто-то тут где-то тут писал об устройствах mvc-фреймворков - через index.php все идет... недолго думая, сделал такой index.php (в общем, черт его знает - понимание сего у меня было буквальным*tam*):
Загрузить источник  GeSHi: PHP
  1. <?php
  2. $start_time = microtime(true);
  3.  
  4. if(isset($_GET['page']) && $_GET['page'] != ''){
  5.  
  6. require_once $_GET['page'].'.php';
  7.  
  8. }
  9.  
  10. $time = microtime(true)-$start_time.' sec.';
  11. $memory = (!function_exists('memory_get_usage')) ? '' : memory_get_usage()/1048576 .'MB';
  12.  
  13. echo $time,' || ',$memory;
Добавлено за 0.034 секунд, используя GeSHi 1.0.8.10


то есть, есть скрипт login.php - его я запускаю так: ?page=login (или index.php?page=login);
если надо сделать login.php?logout - выходит ?page=login&logout...
тут у меня встает один большой вопрос: а зачем? о.о
ну... мне так кажется красивее и.. солиднее... ахах) ну чпу - это дело второе, а вот из чего его делать - это вопрос...

в общем, помогите человеку) как сделать лучше, и как сделать правильнее?
Зло не дремлет, а я добрый...
 
Polarfox
Скачать исходники  Код
if(isset($_GET['page']) && $_GET['page'] != ''){
 
require_once $_GET['page'].'.php';
 
}



это не совсем корректно...

а вопрос не совсем понял, даже совсем не понял.
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле.
Ежели кто забанен за спам, но не считает себя ботом: можете сообщить мне об этом, все будет хорошо.

PolarLab - вход для подопытных
 
Web
Rush
странное мнение, странный вопрос. почему ты уверен, что сможешь сам написать лучше? зачем писать новые велосипеды когда есть куча опенсорс на том же гитхабе/пакаджисте? https://packagist.../?q=router
 
Web
Zaxap
Rush, не лучше, а понятнее. грубо говоря, я пытаюсь применить все полученные при чтении php.net, habrahabr'е и прочих знания на практике...
Если всегда использовать что-то чужое, то толку... да и у каждого свое видение кода.

Вопрос в том, чтобы... редиректить ли с index.php вот так вот (ну или как это делается вообще)... просто решил спросить у знающих, у людей... ну и спросить, упустил ли что... может, есть что-то еще... обязательное... хм..
Зло не дремлет, а я добрый...
 
SchreiBear
Zaxap, aiтут без пузыря не разберешься...поду открою бутылку...ты про вход наверное...если да...то тут не нажно через что ...черз index.php или default.php
Изменил(а) SchreiBear, 23.12.2014 10:38
Нужно сказать огромное спасибо людям, которые живут на популярных девелопер форумах и дают там адекватные ответы на абсолютно «нубские» вопросы без попыток унизить вопрошающего.
 
Rush
умение читать чужой код важнее чем умение читать мануал или хабр. посмотри как сделано в нормальных либах или фреймворках.
роутер - компонент отвечающий за разбор урла страницы и вызов соответствующего обработчика
Скачать исходники  Код
?page=login



?page= можно обрезать, зачем оно тебе? останется просто login и пара строк в htaccess для редиректа всего на index.php, где разбираешь REQUEST_URI и т.д.
x1
 
Web
SchreiBear
Zaxap, вот скачай чат BLB! 7.1 вот тут минимализм по полной http://hot-things....php?sid=2 у этих ребят есть чему поучиться... почти нет гнилого кода
Нужно сказать огромное спасибо людям, которые живут на популярных девелопер форумах и дают там адекватные ответы на абсолютно «нубские» вопросы без попыток унизить вопрошающего.
 
Zaxap
Rush, спасибо! Ну про обрезать - так и хотел в дальнейшем...
В общем-то, начал копать index.php только из-за чьего-то поста тут на форуме в стиле "какое-то неправильное у вас ЧПУ... все должно идти от index.php, который, в свою очередь, будет бла-бла-бла"...
А чужой код тоже активно разбирается (одно дело 2-5 файлов за раз на одну тему, другое - движок)... но это уже другая история... спасибо ab

SchreiBear, спасибо, гляну) Правда, это не значит, что мой почти доделанный движок (точнее, его скелет) полетит в небытие... это как бы "поучиться", как уже было сказано dm
Зло не дремлет, а я добрый...
 
Rush
SchreiBear написал:

Zaxap, вот скачай чат BLB! 7.1 вот тут минимализм по полной http://hot-things....php?sid=2 у этих ребят есть чему поучиться... почти нет гнилого кода


Загрузить источник  GeSHi: PHP
  1. if(isset($_POST['sett2'])){$p2=(int)$_POST['sett2'];}else{$p2=0;}
  2. if(isset($_POST['sett3'])){$p3=(int)$_POST['sett3'];}else{$p3=0;}
  3. if(isset($_POST['sett4'])){$p4=(int)$_POST['sett4'];}else{$p4=0;}
  4. if(isset($_POST['sett5'])){$p5=(int)$_POST['sett5'];}else{$p5=0;}
  5. if(isset($_POST['sett6'])){$p6=(int)$_POST['sett6'];}else{$p6=0;}
  6. if(isset($_POST['sett7'])){$p7=(int)$_POST['sett7'];}else{$p7=0;}
  7. if(isset($_POST['sett8'])){$p8=(int)$_POST['sett8'];}else{$p8=0;}
  8. if(isset($_POST['sett9'])){$p9=(int)$_POST['sett9'];}else{$p9=0;}
  9. if(isset($_POST['sett10'])){$p10=(int)$_POST['sett10'];}else{$p10=999;}
  10. $pp=$p0.'z'.$p1.'z'.$p2.'z'.$p3.'z'.$p4.'z'.$p5.'z'.$p6.'z'.$p7.'z'.$p8.'z'.$p9.'z'.$p10;
Добавлено за 0.040 секунд, используя GeSHi 1.0.8.10


Загрузить источник  GeSHi: PHP
  1. if(isset($_POST['default_effects']) && $_POST['default_effects']!=$settings['default_effects']){
  2. $default_effects=neutral_escape($_POST['default_effects'],1,'int');
  3. $query='UPDATE '.$dbss['prfx']."_settings SET set_value='$default_effects' WHERE set_id='default_effects'";
  4. neutral_query($query);}
  5.  
  6. if(isset($_POST['default_sound1']) && $_POST['default_sound1']!=$settings['default_sound1']){
  7. $default_sound1=neutral_escape($_POST['default_sound1'],1,'int');
  8. $query='UPDATE '.$dbss['prfx']."_settings SET set_value='$default_sound1' WHERE set_id='default_sound1'";
  9. neutral_query($query);}
  10.  
  11. if(isset($_POST['default_sound2']) && $_POST['default_sound2']!=$settings['default_sound2']){
  12. $default_sound2=neutral_escape($_POST['default_sound2'],1,'int');
  13. $query='UPDATE '.$dbss['prfx']."_settings SET set_value='$default_sound2' WHERE set_id='default_sound2'";
  14. neutral_query($query);}
  15.  
  16. if(isset($_POST['default_sound3']) && $_POST['default_sound3']!=$settings['default_sound3']){
  17. $default_sound3=neutral_escape($_POST['default_sound3'],1,'int');
  18. $query='UPDATE '.$dbss['prfx']."_settings SET set_value='$default_sound3' WHERE set_id='default_sound3'";
  19. neutral_query($query);}
Добавлено за 0.050 секунд, используя GeSHi 1.0.8.10


сомневаюсь что это можно отнести к хорошему коду, обычный процедурный говнокод, так что не стоит давать плохих советов.
x1 x1 x1 x1
 
Web
SchreiBear
Rush, да ну уж прям...чужое всегда легче осудить чем своё написать... остаюсь при своём мнении ...код у них отличный... ты в фузион загляни и покретикуй
Нужно сказать огромное спасибо людям, которые живут на популярных девелопер форумах и дают там адекватные ответы на абсолютно «нубские» вопросы без попыток унизить вопрошающего.
 
Rush
конечно легче, непонятно к чему это ты вообще.

пример все же лучше брать с лучших представителей, например из списка топа репозиторий гитхаба https://github.co...positories, а не с какого-то ноунэйм движка чата без какой-либо архитектуры и логики в коде
 
Web
SchreiBear
Rush, в фузионе чудес не меньше...ток что то особо не кто не критикует
Нужно сказать огромное спасибо людям, которые живут на популярных девелопер форумах и дают там адекватные ответы на абсолютно «нубские» вопросы без попыток унизить вопрошающего.
 
Rush
так причем тут фьюжн? про него речь вообще не шла
 
Web
SchreiBear
Rush, ну так не кто и blab не обсуждалag
Изменил(а) SchreiBear, 23.12.2014 21:00
Нужно сказать огромное спасибо людям, которые живут на популярных девелопер форумах и дают там адекватные ответы на абсолютно «нубские» вопросы без попыток унизить вопрошающего.
 
Rush
что за бред, ты же сам про него заговорил
 
Web
SchreiBear
Rush, да я написал...я это помню... ну я так же помню, что я не кого не просил его обсуждать
Нужно сказать огромное спасибо людям, которые живут на популярных девелопер форумах и дают там адекватные ответы на абсолютно «нубские» вопросы без попыток унизить вопрошающего.
 

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум: