Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Число строк кода переваливает за 2000

 PHP.SU

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


 Страниц (1): [1]   

> Описание: слишком ли это вредно?
obi-wan
Отправлено: 26 Сентября, 2007 - 11:47:57
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Сент. 2007  


Помог: 0 раз(а)




Здравствуйте!
Пишется крупный пхп проект. Код уже получается длинный, и вдобавок известно, что будут добавляться все новые и новые страницы с нестандартным содержимым, так что код будет еще длиннее. Мало того, для новых страниц не создается отдельный файл .php, а они добавляются по следующему принципу:
index.php:
PHP:
скопировать код в буфер обмена
  1.  
  2. require_once("pages.php");
  3. ...
  4. // $page_type получаем из GET
  5.  
  6. switch ($page_type)
  7. {
  8.   case "page_name":
  9.     $page = new page_name;
  10.     break;
  11.   ...
  12. }
  13. echo_page($page);
  14.  


pages.php:
PHP:
скопировать код в буфер обмена
  1.  
  2. class html_page
  3. {
  4.   var $content;
  5.   ...
  6. }
  7.  
  8. class page_name extends html_page
  9. {
  10.   function page_name()
  11.   {
  12.      $this->content = "...";
  13.      ...
  14.   }
  15. }
  16.  
  17. function echo_page($page)
  18. {
  19.    echo " ...
  20.    {$page->content}
  21.   ...";
  22. }
  23.  

Структура, в общем, такая. Мне она очень понравилась. Развязывает руки во многом. Однако код pages.php получается уже очень длинным.

Вопрос:
1. Будет ли такой большой код одного файла сильно тормозить выполнение программы, если он еще разрастется (сейчас пока все ок)?
2. Будет ли быстрее работать программа, если чуть-чуть по-другому действовать?
index.php:
PHP:
скопировать код в буфер обмена
  1.  
  2. // $page_type получаем из GET
  3.  
  4. switch ($page_type)
  5. {
  6.   case "page_name":
  7.     include("page_name.php");
  8.     $page = new page_name;
  9.     break;
  10.   ...
  11. }
  12. echo_page($page);
  13.  

То есть для каждой страницы делать отдельный файл с определением ее класса, а потом динамически инклудить только нужный файл, не читая 3000 строк pages.php?
 
 Top
valenok Модератор
Отправлено: 26 Сентября, 2007 - 12:18:47
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Если у вас за раз вызывается лишь один класс
тоесть action=1 тогда один класс а при action 2 другой
то обязательно выделите каждый класс в отдельный скрипт
и действуйте как вы в конце предложили.\n\n(Добавление)
1. Да
2. Да


-----
Truly yours, Sasha.
 
My status
 Top
obi-wan
Отправлено: 26 Сентября, 2007 - 12:57:38
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Сент. 2007  


Помог: 0 раз(а)




Спасибо. Я вот в чем сомневался. ПХП же интерпретирует, а не компилирует. Поэтому подумал, что можно гулять по строкам, куда скажут, а не читать и компилить 3000-строчный файл.
Значит, он все равно читает всё?
 
 Top
valenok Модератор
Отправлено: 26 Сентября, 2007 - 13:34:09
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Вы встречали ошибку E_PARSE.
На размышления наводит?\n\n(Добавление)
да и в конце концов ему же как то надо знать к какой строке перейти
ты же пишешь $a = func($b); а не $a = gotoline(1740);


-----
Truly yours, Sasha.
 
My status
 Top
obi-wan
Отправлено: 27 Сентября, 2007 - 13:14:42
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Сент. 2007  


Помог: 0 раз(а)




Спасибо. Вопросов больше нет Улыбка
 
 Top
obi-wan
Отправлено: 04 Октября, 2007 - 19:43:20
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Сент. 2007  


Помог: 0 раз(а)




Мысль.
Ошибка E_PARSE может возникать просто потому, что дошел пхп до какой-то строчки, отпарсить не может - вот и выдает. Дальше не читает, поэтому таких ошибок всегда не больше одной.

Вызов функций. Функции вызываются только после того, как их определение прочитано. Поэтому ничего "дальше" читать тоже по идее не надо.
 
 Top
valenok Модератор
Отправлено: 04 Октября, 2007 - 20:42:25
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




А значит ли это что парсер всё таки читает?


-----
Truly yours, Sasha.
 
My status
 Top
obi-wan
Отправлено: 05 Октября, 2007 - 11:20:27
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Сент. 2007  


Помог: 0 раз(а)




Само по себе не значит. Другое дело, что я взял и проверил.
Написал такой код:


Не выполнилось. Улыбка значит, читает.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB