|
|
|
| Прочитал весь учебник по php и понял, что некоторых очень ценных вещей я в нем недосчитался.
1) Мы вместе с друзьями пишем проект. Опыт такой уже был, но в виде сайта впервые(раньше на дельфи писали). Тогда у нас была весьма простая система: создавали юнит utils.pas, в котором в свою очередь uses utils_kirill.pas, uses utils_nikita.pas и так далее. А каждый свой юнит utils_name.pas редактирует соответствующий человек. Получалось очень удобно: все мелкие функции и процедуры запихиваем туда, а потом просто в каждом юните пишем uses utils.pas. Код становится удобночитаемым, ошибки искать и исправлять намного проще. Но в php я пока такого не нашел. Конечно, можно создать отдельные файлы, а оттуда все функции копипастить в нужный, но от этого файлы раздуваются в размере(что для больших проектов, особенно в интернете, очень нехорошо), а самое главное, читать всю эту фиготень становится нереально. Собственно, вопрос в том, можно ли сделать что-то аналогичное, создав файл, в котором будут описаны необходимые функции, а дальше на него просто ссылаться?
2) Про cookies
Здесь, признаться, не понял почти ничего. Даже до определения толком не доехал:) Буду крайне признателен тому, кто попробует это переформулировать попонятнее.
Спасибо. | |
|
|
|
|
|
|
|
для: Страус
(07.09.2009 в 18:35)
| | 1)
require_once('utils.php');
|
| |
|
|
|
|
|
|
|
для: Trianon
(07.09.2009 в 18:41)
| | Спасибо. А что формально делает эта функция? Как я понял, я смогу использовать все функции, объявленные в utils.php. А как насчет глобальных переменных? И как эта функция дружит с кодом, написанным в utils.php, но не объявленным, как функция? Он просто игнорируется или выполняется целиком? | |
|
|
|
|
|
|
|
для: Страус
(07.09.2009 в 18:48)
| | >Спасибо. А что формально делает эта функция?
То, что написано в мануале.
>Как я понял, я смогу использовать все функции, объявленные в utils.php.
сможете.
>А как насчет глобальных переменных?
Файлы не обладают отдельной областью видимости. Как ведет себя текст в основном файле - также будет вести текст и в подключаемом.
>И как эта функция дружит с кодом, написанным в utils.php, но не объявленным, как функция?
>Он просто игнорируется или выполняется целиком?
Весь текст, что вне, что внутри функций будет обработан одинаково.
при первом вызове - выполнит. При последующих - проигнорирует. | |
|
|
|
|
|
|
|
для: Страус
(07.09.2009 в 18:48)
| | Как правило, в таких файлах объявляются только функции или части интерфейса, которые должны появится на странице один раз. Т.е. поместить туда глобальный объект, массив или переменную не получится - эти значения не передаются Web-сервером, если вы специально не организовываете этот процесс при помощи cookie или сессий и соответственно обмениваться через эту конструкцию данными не получится. А вот разделить зоны отвестенности между разработчиками - запросто - самый подходящий инструмент. | |
|
|
|
|
|
|
|
для: Страус
(07.09.2009 в 18:35)
| | 2) Модули в программе зачастую используют единый объем памяти - будь то общие объекты, массивы или переменные. К сожалению, протокол HTTP не поддерживает сессионность - вы устанавливаете значение переменных, а они сбрасываются при следующем обращении к скрипту. Для того, чтобы передавать ранее установленные состояния приложения от страницы к странице (или при перезагрузки страницы) были введены механизмы сессий и cookie - по сути это глобальные массивы, через которые вы можете передавать значения переменных от страницы к странице. | |
|
|
|