Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
vaselisk
0 / 0 / 0
Регистрация: 22.02.2010
Сообщений: 8
1

Включать все файлы в один или подключать отдельно?

22.02.2010, 15:26. Просмотров 1456. Ответов 12
Метки нет (Все метки)

Доброе время суток!

Назрел вопрос. Я написал ядро Админ-панели к своему сайту.
Ядро вышло на 40кб. Структура ядра такова:

Если запрос "такойто-1" { действие }
Если запрос "такойто-2" { действие }
Если запрос "такойто-3" { действие }
и т.д...

Вопрос:
*Каждый код действия довольно таки большой, имеет ли смысл размещать каждое действие в отдельном файле или лучше хранить в одном файле?
*Проблемы с ориентированием в коде нет.
*Интересуют исключительно аспекты скорости и другие, которые могут возникнуть.


Заранее спасибо!
С уважением, Vaselisk!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2010, 15:26
Ответы с готовыми решениями:

Возможно ли включать или подключать расширения без вмешательства в php.ini?
Потребовалась библиотека GMP, для математических вычислений и столкнулся с таким вот вопросом. На...

Нужно ли к файлу .h подключать все заголовочные файлы, которые понадобятся в .cpp
Например, есть add.h и add.cpp В add.h прототип функции: void func(T); А тип T объявлен в...

Сложить отдельно все положительные элементы этого массива, отдельно все отрицательные
Написать программу, которая сначала вводит десять чисел в одномерный массив, а затем складывает...

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

Сложить отдельно все положительные и отрицательные элементы массива отдельно
Кому не лень помогите пожалуйста сделать эти задачи. Хотя бы несколько. Буду очень признателен. 1)...

12
Humanoid
Почетный модератор
10052 / 3924 / 360
Регистрация: 12.06.2008
Сообщений: 11,487
22.02.2010, 15:52 2
Лично я предпочитаю более-менее крупные действия запихивать в отдельный файл. На сколько я помню, PHP в этом случае не будет обращаться к каждому файлу... значит, ему меньше придётся анализировать синтаксис. Да и самому удобнее будет ориентироваться. Лично я делаю примерно так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if (isset($_GET['do']))
  $do=$_GET['do'];
else
  $do='';
 
switch($do)
{
  case 'users':
    require './include/admin_users.php';
    break;
  case 'groups':
    require './include/admin_groups.php';
    break;
  default:
    require './include/admin_def.php';
    break;
}
Но тут нужно в веб сервере запрещать доступ к папке include, что бы какой-нибудь редиска не обратился напрямую к одному из этих файлов. Либо защищать другим способом... например, в основном скрипте в самом начале завести константу:
PHP
1
define('MAIN','');
А во всех скриптах, которые не должны запускаться сами по себе, а которые только подключаются можно проверять эту константу:
PHP
1
2
if (!defined('MAIN')) 
  die('Пшёл вон, морда хакерская!');
0
vaselisk
0 / 0 / 0
Регистрация: 22.02.2010
Сообщений: 8
22.02.2010, 18:15  [ТС] 3
Большое спасибо!

Я выслушал Ваше мнение и считаю Вы правы.
Но т.к. мои знания довольно неглубоки, поэтому решил удостовериться, что нет "подводных камней".
0
boong
152 / 122 / 11
Регистрация: 11.01.2010
Сообщений: 434
23.02.2010, 01:07 4
Цитата Сообщение от Humanoid Посмотреть сообщение
if (isset($_GET['do']))
$do=$_GET['do'];
else
$do='';
switch($do)
{
case 'users':
require './include/admin_users.php';
break;
case 'groups':
require './include/admin_groups.php';
break;
default:
require './include/admin_def.php';
break;
}
Humanoid согласен я тож так делаю
0
23.02.2010, 01:07
vaselisk
0 / 0 / 0
Регистрация: 22.02.2010
Сообщений: 8
23.02.2010, 01:26  [ТС] 5
*Не является ошибкой все время подключаться к БД, независимо есть уже подключение или нет?
*Или лучше проверять подключен уже скрипт к БД или нет?

Из того, что я знаю, после выполнения запроса связь с БД не теряется,
если самостоятельно не закрыть. Закрытие происходит после выполнения скрипта. От сюда - закрывать подключение, в моем случае, не имеет смысла, а значит подключаться в самом начале скрипта до выполнения какого либо действия - тоже НЕ имеет смысла. Я правильно рассуждаю?[i]

Если запрос "такойто-1" { подключение; действие }
Если запрос "такойто-2" { подключение; действие }
Если запрос "такойто-3" { подключение; действие }
0
boong
152 / 122 / 11
Регистрация: 11.01.2010
Сообщений: 434
23.02.2010, 01:31 6
Вот посмоти Как правильно соединятся MySQL
0
Humanoid
Почетный модератор
10052 / 3924 / 360
Регистрация: 12.06.2008
Сообщений: 11,487
23.02.2010, 11:03 7
Цитата Сообщение от vaselisk Посмотреть сообщение
Из того, что я знаю, после выполнения запроса связь с БД не теряется,
если самостоятельно не закрыть.
Если использовать mysql_connect, то оно само закрывается, когда скрипт завершён. А если использовать mysql_pconnect, то соединение остаётся висеть... это специально сделано для того, что бы по нескольку раз не подключаться к серверу MySQL. И самому тут не надо думать об этом... всё делается автоматически. Если подключение к этой базе с этим логином и паролем уже есть, то PHP сам поймёт, что не надо создавать новое, а надо использовать существующее подключение.
0
vaselisk
0 / 0 / 0
Регистрация: 22.02.2010
Сообщений: 8
23.02.2010, 12:21  [ТС] 8
boong, спасибо! Обязательно почитаю!

Humanoid, а если подключение все время к одной и той же БД, но с разными пользователями?
Сначала, например, у меня идет выборка всех значений -используется пользователь для чтения БД
Потом, у меня обрабатываются значения и вносятся изменения или новые - пользователь для записи в БД. Как поступить?
0
Humanoid
Почетный модератор
10052 / 3924 / 360
Регистрация: 12.06.2008
Сообщений: 11,487
23.02.2010, 12:35 9
Цитата Сообщение от vaselisk Посмотреть сообщение
а если подключение все время к одной и той же БД, но с разными пользователями?
Для каждого пользователя будет создаваться своё подключение. Если у тебя два пользователя, то просто будет висеть два подключения и каждое из них будет ждать своей очереди. Когда в очередной раз через mysql_pconnect будет подключаться пользователь для чтения, то будет задействоваться первое подключения... когда будет подключаться пользователь для записи, то будет задейтвоваться второе подключение.
0
SunDrop
389 / 228 / 11
Регистрация: 09.12.2009
Сообщений: 668
23.02.2010, 16:05 10
Цитата Сообщение от Humanoid Посмотреть сообщение
На сколько я помню, PHP в этом случае не будет обращаться к каждому файлу...
В целом ты прав, но это касается директивы include!
Директива require подключается всегда.
0
Humanoid
Почетный модератор
10052 / 3924 / 360
Регистрация: 12.06.2008
Сообщений: 11,487
23.02.2010, 17:07 11
SunDrop, хм... разве? Вроде, в справке сказано, что разница между include и require только в том, что include в случае, если файла не существует, сделает warning и продолжит работу, а require выдаст error и остановится. Не знаю... надо будет как-нибудь проверить.
1
SunDrop
389 / 228 / 11
Регистрация: 09.12.2009
Сообщений: 668
23.02.2010, 18:42 12
Humanoid
Конструкция require позволяет включать файлы в сценарий PHP до исполнения сценария PHP.

При запуске (именно при запуске, а не при исполнении!) программы интерпретатор просто заменит инструкцию на содержимое файла имя_файла (этот файл может также содержать сценарий на PHP, обрамленный, как обычно, тэгами <? и ?>). Причем сделает он это непосредственно перед запуском программы.

В отличие от конструкции require конструкция include позволяет включать файлы в код PHP скрипта во время выполнения сценария.

PHP преобразует сценарий во внутреннее представление, анализируя строки сценария по очереди, пока не доходит до конструкции include. Дойдя до include, PHP прекращает транслировать сценарий и переключается на указанный в include файл. Таким образом из-за подобного поведения транслятора, быстродействие сценария снижается, особенно при большом колличестве включаемых с помощью include файлов. С require таких проблем нет, поскольку файлы с помощью require включаются до выполнения сценария, то есть на момент трансляции файл уже включен в сценарий.
2
vaselisk
0 / 0 / 0
Регистрация: 22.02.2010
Сообщений: 8
23.02.2010, 20:31  [ТС] 13
Уважаемые!
Подскажите, пожалуйста, литературу, с помощью которой, не трудно будет освоить ООП и все что связано с современной деятельностью PHP-программистов. Очень хочу работать по этой профессии.
При этом хорошо разбираюсь в графике и неплохо в верстке, что может помочь в изучении материала.
Знаком с XTML, CSS, PHP(база), MySQL(база), Photoshop и др. граф.редакторами...
0
23.02.2010, 20:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2010, 20:31

Вставка картинок во все найденные Excel-файлы, попутно объединяя все PDF в один
В общем, в чем проблема. Как сделать, чтоб при запуске программы открывалось окно, в нем выбиралась...

Как сохранить все wma файлы из папки в один, что бы потом сразу все подгружать?
как сохранить все wma файлы из папки в один, что бы потом сразу все подгружать в файл?

Поместить все компоненты приложения в один файл или скрыть во избежание модификации или замены
Во время работы накопилось огромное количество jpg и dll файлов в папке debug. Как это всё запихать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru