PHP. Рецепты программирования Дэвид Скляр, Адам Трахтенберг

У нас вы можете скачать книгу PHP. Рецепты программирования Дэвид Скляр, Адам Трахтенберг в fb2, txt, PDF, EPUB, doc, rtf, jar, djvu, lrf!

Скляр Дэвид Трахтенберг Адам February 27, Третье издание этой популярной книги представляет собой подборку готовых решений наиболее распространенных задач на языке РНР. Изложен материал, интересный каждому разработчику: Даны рецепты, затрагивающие основы объектно-ориентированного программирования и новые функциональные возможности РНР. Каждый рецепт является самодостаточным и показывает весь путь решения задачи. Третье издание книги полностью обновлено под версию PHP 5.

It syncs automatically with your account and allows you to read online or offline wherever you are. Please follow the detailed Help center instructions to transfer the files to supported eReaders. Практика создания Web-сайтов, 2 изд. Рассматривается создание большого количества Web-приложений, входящих в состав полнофункционального Web-сайта.

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

Эта книга является уникальным визуальным руководством, благодаря которому вы усвоите данные технологии максимально эффективно. Вы не только изучите Это не книга по теории программирования! Это сборник рецептов, которые могут пригодиться в повседневной работе программиста.

Функции помогают создавать структурированный код, пригодный для повторного использования. Они позволяют абстрагироваться от второстепенных подробностей, делая код более гибким и понятным. Без использования функций программы создают массу проблем с сопровождением, потому что вам приходится постоянно обновлять идентичные блоки кода в разных местах и разных файлах.

Функция объявляется ключевым словом function, за которым следует имя функции и параметры, заключенные в круглые скобки. Чтобы вызвать функцию, просто укажите ее имя и значения аргументов.

Если функция возвращает значение, присвойте результат функции переменной, как показано в предыдущем примере. Предварительно объявлять функцию перед вызовом не обязательно.

РНР обрабатывает весь файл, прежде чем выполнять его, поэтому объявления и вызовы функций можно чередовать в любой последовательности. При этом в РНР нельзя переопределять функции. Обнаружив функцию с именем, идентичным имени уже существующей функции, РНР выдает фатальную ошибку и аварийно завершается.

Иногда стандартная процедура с передачей фиксированного количества аргументов и возвращением одного значения плохо подходит для конкретной ситуации в вашем коде.

Возможно, вы не знаете заранее, сколько параметров потребуется вашей функции. А может быть, функция почти всегда вызывается. Ранние версии РНР были чисто процедурными: В году никто не ожидал стремительного роста численности программистов РНР или того, что на РНР будут создаваться масштабные программные проекты.

В то время ограниченные возможности объектов не создавали проблем. За прошедшие годы в РНР была реализована расширенная объектно-ориентированная функциональность; тем не менее группа разработки не переработала базовый объектно-ориентированный код для нормальной работы с объектами и классами.

В результате, несмотря на общее повышение эффективности РНР 4, написать сложную объектно-ориентированную программу было достаточно сложно, если вообще возможно. Оно позволило включить в РНР более современные объектно-ориентированные возможности без потери высокой степени обратной совместимости с миллионами написанных сценариев РНР. В последних версиях РНР 5 объектно-ориентированный инструментарий был дополнительно усовершенствован. Сегодня он позволяет разработчикам создавать полнофункциональные объектно-ориентированные приложения.

Читателей, не имеющих опыта работы с объектно-ориентированным программированием, ждет немало сюрпризов. Хотя решение некоторых задач упрощается, в ряде случаев ваши возможности ограничиваются. На первый взгляд ограничения выглядят противоестественно, но в действительности они помогают быстро писать безопасный код, потому что их целью является повторное использование кода и инкапсуляция данных. Эти ключевые инструменты объектно-ориентированного программирования будут рассмотрены….

Вероятно, веб-программирование — главная причина, по которой вы читаете эту книгу. Именно ради веб-программирования была написана первая версия РНР, и эта же причина обеспечивает нынешнюю популярность этой технологии. С РНР можно легко создавать динамические веб-программы, которые способны сделать почти все. В других главах рассматриваются различные возможности РНР: Все эти возможности являются частью веб-программирования, но эта глава посвящена ключевым концепциям и организационным вопросам, которые расширяют ваши возможности веб-программирования.

Запросы HTTP не имеют состояния; каждый последующий запрос не связан с предыдущим. С другой стороны, cookie могут связывать разные запросы от одного пользователя. Это упрощает построение таких подсистем, как покупательская корзина в интернет-магазине или отслеживание истории поиска пользователя. Также данные могут передаваться в строке запроса и в теле запроса.

Аналогичным образом в Рецепте 8. В следующих рецептах продемонстрировано использование аутентификации для защиты веб-страниц паролями. На практике чаще рекомендуется использовать собственную реализацию аутентификации на основе cookie, как объясняется в Рецепте 8. Три следующих рецепта относятся к управлению выводом. Автоматическое сжатие вывода рассматривается в Рецепте 8. Следующие два рецепта посвящены взаимодействию с внешними переменными: Если вы используете веб-сервер Apache, то можете использовать средства из Рецепта 8.

В эту главу также включены три программы, демонстрирующие некоторые из описанных концепций. Если пользователь не перейдет по ссылке в течение недели после получения сообщения, его учетная запись удаляется. Это позволяет клиенту возобновить прерванную загрузку с той точки, на которой она была прервана. Одной из самых сильных сторон РНР является органичная интеграция переменных форм в программы.

Благодаря ей веб-программирование становится простым и элегантным, а цикл перехода от веб-форм к коду РНР и выводу HTML существенно ускоряется. Впрочем, вместе с удобствами приходит ответственность: Внешнему вводу нельзя доверять ни при каких условиях, поэтому очень важно проверять все вводимые данные.

HTTP относится к категории протоколов без состояния — в нем нет встроенного механизма, позволяющего сохранить информацию с одной страницы, чтобы обратиться к ней из других страниц. При обработке страницы РНР проверяет URL-адрес и переменные формы, отправленные файлы, действующие cookie, переменные веб-сервера и окружения. Полученные данные напрямую доступны в следующих массивах: В них хранятся соответственно все переменные, заданные в строке запроса, в теле запроса, отправкой файлов, cookie, вебсервером и окружением, в котором работает веб-сервер.

Базы данных занимают центральное место во многих веб-приложениях. В базе данных можно хранить практически любую информацию, которую вы планируете использовать для поиска и обновления: Одной из причин, по которым РНР так хорошо подходит для веб-программирования, является всесторонняя поддержка баз данных. РНР может взаимодействовать практически с любыми базами данных — как с реляционными, так и с другими.

Базы данных DBM, рассматриваемые в Рецепте Эта комбинация используется в большинстве рецептов этой главы. Работа с базами данных SQL бывает нетривиальной, но они отличаются исключительной мощью. Если РНР строится с поддержкой динамической загрузки модулей, поддержка базы данных также может быть построена в виде динамического модуля.

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

При написании кода SQL, ориентированного на конкретный тип базы данных, вы можете использовать особенности этой базы данных для достижения максимального быстродействия.

© Крушина - дерево хрупкое Валентин Сафонов 2018. Powered by WordPress