CakePHP с нуля базовые принципы


Содержание

Добавление кэширования

Повышение производительности приложений

Серия контента:

Этот контент является частью # из серии # статей: Быстрое создание Web-сайтов с помощью CakePHP, Часть 5

Этот контент является частью серии: Быстрое создание Web-сайтов с помощью CakePHP, Часть 5

Следите за выходом новых статей этой серии.

Данная серия руководств предназначена для тех разработчиков приложений на PHP, кто хочет начать использовать CakePHP, чтобы облегчить себе жизнь. Прочитав до конца, вы научитесь устанавливать и настраивать конфигурацию CakePHP, изучите основы проектирования Модель-Представление-Контроллер (MVC), узнаете, как проводить валидацию пользовательских данных в CakePHP, как применять помощников CakePHP, и как, используя CakePHP, можно быстро написать и запустить приложение. Может показаться, что нужно изучить очень много, но не переживайте — большую часть CakePHP сделает за вас.

Предполагается, что вы уже прочитали первую, вторую, третью, и четвертую части данной серии, и у вас есть рабочая среда, которая была установлена для выполнения примеров. Если у вас не установлен CakePHP, то прежде чем идти дальше, необходимо обратиться к первой и второй частям данной серии.

Предполагается, что вы знаете язык программирования PHP, обладаете фундаментальным пониманием проектирования баз данных, и не боитесь замарать рук.

Системные требования

Для того чтобы начать работу, у вас должна быть среда, в которой можно работать. CakePHP предъявляет минимальные разумные требования к серверу:

  1. Сервер HTTP с поддержкой сессий (и желательно mod_rewrite ). Данное руководство было написано при использовании Apache V1.3 с mod_rewrite .
  2. PHP версии 4.3.2 или выше (включая PHP версии 5). Данное руководство создавалось на основе PHP версии 5.0.4
  3. Поддерживаемое ядро базы данных (на сегодняшний день — MySQL, PostgreSQL или используя надстройку над ADODB). Руководство было написано при использовании MySQL V4.1.15.

Также необходима база данных и пользователь базы данных, готовые к использованию приложением. В руководстве представлены синтаксические структуры для создания всех необходимых таблиц в MySQL.

Самый простой способ получить CakePHP — это зайти на сайт CakeForge.org и загрузить самую последнюю стабильную версию. Данное руководство создавалось на основе версии 1.1.8. (Полные сборки и копии Subversion также доступны для загрузки. Подробное описание приведено в Справочнике по CakePHP — см. Ресурсы).

Итак, Tor

В конце четвертой части, вам было задано усовершенствовать Tor. Справились?

Добавление представления и функции Favorites

Для просмотра списка Favorites (Избранное), необходимо добавить функцию favorites в контроллер users, как показано в листинге 1.

Листинг 1. Добавление функции favorites в контроллер users

Не забудьте про переадресацию пользователя, если он не вошел в систему. Это позволит избежать появления ошибки, если пользователь просматривает страницу, не войдя в систему.

Также необходимо добавить файл favorites.html в директорию app/views/users/, который может выглядеть так, как показано в листинге 2.

Листинг 2. Favorites.html

Фактически, все, что делает представление, это показывает таблицу products. Однако сейчас таблица products отображается вместе с ссылкой Add To Favorites (добавить в Избранное). Это неправильно, так как просматривается именно список товаров в favorites (Избранном). Должна быть ссылка Remove From Favorites (удалить из Избранного).

Добавление ссылки Remove From Favorites (удалить из Избранного)

Итак, ваше задание заключалось в добавлении ссылки Remove From Favorites (удалить из Избранного) в таблицу products, настроив ее таким образом, чтобы пользователь видел ссылку Remove (удалить), если товар присутствует в его списке favorites (Избранное), и ссылку Add (добавить), если данного товара нет в списке favorites (Избранное) пользователя. Давайте посмотрим на таблицу products еще раз, так как это очень важно.

Листинг 3. Таблица рroducts

Ссылка Remove From Favorites (удалить из Избранного) аналогична тому, что показано в листинге 4.

Листинг 4. Ссылка Remove from Favorites (удалить из Избранного)

Также в контроллере products должна быть функция removeFromFavorites .

Листинг 5. Функция removeFromFavorites

Аналогично, необходимо создать метод removeFavorite в контроллере users.


Листинг 6. Создание метода removeFavorite

Наверно, вы обратили внимание, что при просмотре списка favorites, отображается ссылка Add to Favorites (добавить в Избранное). Вместо нее пользователь должен видеть кнопку Remove from Favorites (удалить из Избранного) для тех товаров, которые были добавлены и находятся в списке favorites. Как это сделать?

Кэширование

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

Понятие кэширования

Как правило, кэширование происходит при каждом запросе, когда отвечающее приложение говорит «Мне не нужно никуда идти за информацией. Она уже есть у меня». Чаще всего, если пользователь компьютера слышит слово «кэш», то он думает о кэше браузера. Обычно, для того чтобы ускорить работу пользователя, браузер сохраняет копии просмотренных статических файлов — рисунки, таблицы стилей, статические HTML-файлы и файлы сценариев. Хотя данный тип кэширования иногда доставляет неприятности разработчикам Web-приложений, в данном руководстве он рассматриваться не будет.

Еще один пример кэширования — запрос браузером контента у приложения. Если Web-приложение применяет кэширование, то оно может ответить на запрос предварительно созданной копией контента, что снижает излишние затраты ресурсов на вторичное создание контента. Данный тип кэширования и будет описан в данном приложении.

Зачем кэшировать?

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

Как кэшировать?

Итак, вас уговорили. Теперь вы готовы к тому, чтобы кэшировать все и всегда. Как это сделать? Как CakePHP может упростить данную задачу?

Для начала, необходимо включить кэширование. По умолчанию оно отключено. Включить его можно в app/config/core.php — найдите запись: define(‘CACHE_CHECK’, false); и измените ее на define(‘CACHE_CHECK’, true); .

Задавая значение true (истина), вы, тем самым, указываете CakePHP, что кэширование включено. Давайте пойдем дальше, так как настроить кэширование можно позднее. Мы еще не закончили: необходимо указать CakePHP, что конкретно необходимо кэшировать и на какой промежуток времени.

Что кэшировать?

Включив кэширование, необходимо указать, что нужно кэшировать. Это можно реализовать в контроллере для представлений, которые необходимо кэшировать, добавив кэширование в массив helpers . Например, если необходимо кэшировать представления products, то в массиве helpers контроллера products должно присутствовать кэширование. Когда вы создавали контроллер products в Tor, то указали, что используются helpers (помощниики) форм и HTML. При добавлении кэширования в этот список массив helpers будет выглядеть следующим образом: var $helpers = array(‘Html’, ‘Form’, ‘Cache’ ); .

Теперь, когда используется помощник кэширования, необходимо указать, что конкретно следует кэшировать. Это можно выполнить различными способами, однако все они зависят от массива $cacheAction .

Кэширование конкретного запроса

Предположим, что необходимо кэшировать конкретный запрос. Представим, что есть три или четыре товара, которые часто просматриваются, и вы хотите кэшировать только представления «просмотра» («view») данных товаров. В этом случае, необходимо описать запросы, которые вы хотите кэшировать, в качестве ключей массива для $cacheAction и указать временной срок в качестве значений ключа. Массив $cacheAction является переменной класса так же, как и массив $helpers . Для кэширования этих конкретных представлений, $cacheAction должен выглядеть так, как показано в листинге 7.

Листинг 7. $cacheAction

Данный $cacheAction указывает CakePHP, что необходимо кэшировать представления «просмотра» для товаров 1-3 в течение 3,600 секунд (один час). Указанный временной срок может задаваться в любом формате, который интерпретируется strtotime() . Можно просто задать 1 hour (1 час).

Кэширование целой функции

Возможно, простого кэширования нескольких товаров будет недостаточно и появится желание кэшировать все представления определенной функции. Предположим, что необходимо кэшировать представления функции редактирования (edit). Для этого, следует определить функцию как ключ массива и указать промежуток времени, в течение которого представления должны храниться в кэше, практически так же, как вы делали это ранее.

Можно даже смешать и согласовать.

Листинг 8. Смешивание и согласование

Данный прием позволяет экономить время. Теперь вы кэшировали представления «просмотра» наиболее часто просматриваемых товаров и все представления редактирования, но может появиться желание сделать больше.

Кэширование всех функций контроллера

Возможно, необходимо кэшировать все, что делает контроллер. В этом случае, нет никакой необходимости описывать каждую функцию в массиве $cacheAction . Можно просто в качестве значения $cacheAction задать промежуток времени хранения кэшированной информации: var $cacheAction = «+1 hour»; .

Значением должна быть строка, которую может интерпретировать strtotime() . Если задать $cacheAction только одно значение, то это укажет CakePHP, что нужно кэшировать все представления контроллера.

Кэширование из функции

Так как $cacheAction является переменной класса, то можно обращаться к переменной непосредственно из функции. Предположим, что необходимо изменить $cacheAction из функции. В этом случае, будет тот же самый синтаксис, который используется для изменения любой переменной класса.

Как правило, в этом нет никакой необходимости, но может возникнуть ситуация, когда понадобится и такое кэширование. Если вы столкнетесь с такой ситуацией, то теперь знаете, как это можно сделать. В CakePHP есть различные способы кэширования представлений. Это легко. Более сложной задачей, является определение когда нужно, а точнее, когда не нужно кэшировать.

Когда использовать кэширование?


Возможно, у вас появилось ощущение, что кэширование — это самое замечательное изобретение человечества. Более того, очень часто так и есть. Однако возникает вопрос, в каком случае не следует кэшировать представления?

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

Однако это вовсе не означает, что кэширование не нужно использовать вообще. Просто необходимо уточнить CakePHP что следует кэшировать.

Использование разметки в представлении

В представлении или макете, CakePHP позволяет исключить некоторый контент из кэширования, если заключить его в теги . Корректное использование этой разметки позволит CakePHP кэшировать статические части представления или макета, и гарантировать, что динамические составляющие страницы считываются при каждом запросе.

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

Например, в Tor, используемый по умолчанию макет, созданный в четвертой части должен выглядеть примерно так :

Листинг 9. Макет, используемый по умолчанию

Если кэширование включено, то при первой загрузке любой страницы, которая использует макет по умолчанию, Welcome read(‘user’) ?> будет заменено на Welcome или Welcome wrestler — то есть, неважно какой пользователь вошел в систему, он увидит кэшированное имя пользователя.

Чтобы указать, что не следует кэшировать имя пользователя, необходимо заключить строку read(‘user’) ?> в теги . Окончательный результат будет выглядеть следующим образом:

Листинг 10. Описание того, что имя пользователя не должно кэшироваться

Можно выполнить проверку, указав, что контроллер products использует кэширование функции представления (view). Добавьте кэширование в список помощников (helpers) и укажите представление в $cacheAction .

Цукерберг рекомендует:  Документация - Решение для ведения внутренней тех.документации
Листинг 11. Описание того, что контроллер products использует кэширование функции представления

Теперь, посмотрите товар. Вы должны увидеть файл, созданный в app/tmp/cache/views, который соответствует тому товару, который вы смотрели. Зайдите в систему под другим пользователем и посмотрите тот же самый товар. Вы увидите, что имя пользователя не было кэшированно. Отредактируйте этот товар. Теперь CakePHP известно, что нужно удалить кэшированное представление. Разве не изящно?

Использование тегов позволяет найти изящное решение кэширования представлений и сохранения актуального контента. Случается, что и этого недостаточно. Иногда приходится чистить кэш вручную.

Когда очищать кэш

Даже если вам известно, что подлежит кэшированию, а что нет, иногда возникает необходимость очищать кэш вручную. Может возникнуть мысль, что такая необходимость возникает при изменении и обновлении информации. Например, если товар был отредактирован, то представления просмотра и редактирования данного товара, так же как и представление index товаров должны быть удалены из кэша. Вы правы! Их действительно необходимо удалить из кэша.

Но вам не придется делать это самостоятельно, так как за вас это сделает CakePHP. CakePHP знает, что при добавлении, изменении или удалении данных, и если эти действия оказывают влияние на кэшированное представление, необходимо удалить кэшированное представление. Это позволяет сэкономить огромное количество усилий.

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

Как очищать кэш

Аналогично тому, как CakePHP предоставляет различные способы кэширования данных, существует несколько способов удаления информации из кэша:

  • Для очистки кэша только от кэшированного представления «просмотра» товара 1 необходимо использовать следующую структуру: clearCache(‘products_view_1’); .
  • Для очистки кэша от всех представлений «просмотра» контроллера products необходимо использовать следующую структуру: clearCache(‘products_view’); .
  • Для очистки кэша от всех представлений контроллера products необходимо использовать следующую структуру: clearCache(‘products’); .
  • Для очистки кэша от различных типов представлений, необходимо передать массив в clearCache :
    Если необходимо очистить весь кэш, то вызовите функцию без параметров: clearCache(); . Эту функцию можно вызвать, создав контроллер emptycache и поместив вызов функции в функцию index. Данная функция должна вызываться вручную, или через что-либо в событии, которое должно быть автоматизировано процессом.

Заключение

Поздравляю! Вы прочитали всю серию до конца. Вероятно, вы в приподнятом настроении и готовы создавать свое собственное приложение.

Но прежде, в app/config/core.php, задайте 2 в качестве значения DEBUG. Это укажет CakePHP, что необходимо отображать отладочную информацию SQL в нижней части окна представлений. Кэшированные страницы хранятся в app/tmp/cache/views. Откройте одну из них, чтобы иметь представление о том, как выглядят кэшированные страницы. Удалите кэшированные файлы и представление товара. Обратите внимание на то, сколько запросов было сделано и как долго они выполнялись. Теперь перезагрузите. Представление было кэшировано. Сколько запросов было запущено на этот раз? Узнайте больше о кэшировании. Рассмотрите различные способы его использования в Tor. Когда разберетесь со всем окончательно, удалите его и займитесь разработкой своего собственного приложения.

Итак, вы много узнали из серии «Быстрое создание Web-сайтов с помощью CakePHP», но только создание своего собственного приложения с помощью CakePHP позволит применить свои знания на практике.

Ресурсы для скачивания

  • этот контент в PDF
  • Part 5 source code (os-php-cake5.source.zip | 158KB)


Похожие темы

  • Оригинал статьи: Cook up Web sites fast with CakePHP, Part 5: Adding cache.
  • Чтобы получить более подробную информацию о CakePHP, посетите сайт CakePHP.org.
  • Подробное описание CakePHP API. Здесь расположена свежая документация по CakePHP.
  • Огромное количество информации предлагается на сайте The Bakery, представляющем сообщество пользователей CakePHP.
  • Валидация данных в CakePHP использует Perl-совместимые регулярные выражения PHP.
  • Хотите узнать больше о шаблонах проектирования? Прочитайте книгу Шаблоны проектирования: Элементы объектно-ориентированного программного обеспечения многократного использования.
  • Прочитайте исходные материалы по созданию пользователей.
  • Прочитайте Википедия: Модель-Представление-Контроллер.
  • Полезные первоисточники по шаблону Модель-Представление-Контроллер.
  • Здесь представлен полный список различных типов шаблонов проектирования программного обеспечения.
  • Прочитайте о шаблонах проектирования.
  • Для получения дополнительной информации по PHP посетите Ресурсы проекта PHP на IBM developerWorks.
  • Посетите раздел, посвященный ПО с открытым исходным кодом, на developerWorks для получения обширного количества информации, инструментальных средств, и обновлений проекта, призванного помочь в разработке при помощи технологий с открытым исходным кодом и в использовании их совместно с продуктами IBM.
  • Интервью и обсуждения, которые будут интересны для разработчиков ПО, доступны для прослушивания на сайте подкасты developerWorks.
  • Внесите новшества в Ваш следующий проект разработки с открытым исходным кодом при помощи пробного программного обеспечения IBM, доступного для загрузки или представленного на DVD.

Комментарии

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

Изучаем PHP и MySQL правильно

Есть в веб-программировании такие дисциплины, основы которых обязан знать любой человек, связанный с всемирной паутиной. Поэтому, так или иначе, а изучать PHP и MySQL вам придется. А если не хотите, то жадность все равно заставит:

Зачем изучать php и MySQL?

Такой вопрос могут задавать лишь те, кто совсем не знаком со спецификой построения веб-пространства и ее современной основой. Любой мало-мальски сведущий в программировании человек скажет, что эти две дисциплины являются на сегодняшний день главенствующими во всемирной паутине. А это значит, что почти весь интернет построен на основе PHP и MySQL :

Хотя в наше время значение PHP немного уменьшилось. И все из-за большого количества движков, которые ( по иронии ) также построены на основе этого языка.

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

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

  • Востребованную профессию – на рынке труда толковые программисты всегда были нарасхват. Но даже неопытные новички с хорошими теоретическими знаниями PHP и небольшим опытом в веб-программировании смогут найти работу с достойной оплатой;
  • Удаленную работу – для того чтобы заниматься программированием не обязательно рано вставать, добираться на работу и соблюдать дресскод. Все это можно оставить за порогом, и создавать программный код, сидя дома в комнатных тапочках;
  • Экономию денег – если вы являетесь владельцем сайта, то конечно знаете, что услуги профессиональных веб-программистов стоят дорого. А для начинающего свое дело в интернете дорога каждая копейка. Самостоятельное обучение MySQL и PHP позволит сэкономить средства и пустить их в нужное русло.

Как уже отмечалось, большинство современных движков работают на основе PHP . Хотя их отказоустойчивость и находится на высоком уровне, но влияние человеческого фактора никто не отменял. Поэтому код CMS иногда ведет себя не так, как задумал веб-программист.

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


  • Интересное хобби – веб-программирование это не только средство зарабатывания денег или их экономии. Это еще и увлекательное занятие, которое совмещает в себе как техническое начало, так и творческую составляющую.

Что такое PHP

PHP относится к скриптовым языкам программирования. Чаще всего он применяется для создания веб-приложений и веб-сервисов. Данный язык поддерживается большинством хостингов в интернете. На его основе написана основная часть динамических сайтов.

Популярность PHP объясняется его следующими характеристиками:

  • Поддержка большинства популярных СУБД ( Систем Управления Базами Данных );
  • Автоматическая отправка заголовков HTTP ;
  • Встроенная поддержка работы с сессиями и cookies;
  • Средства работы с удаленными файлами;
  • Поддержка XForms ( формы, созданные на основе XML );
  • Приближенность синтаксиса PHP к языку C;
  • Отсутствие строгой типизации – типизация переменных осуществляется динамически.
  • Поддержка ООП ( объектно-ориентированного программирования );
  • Большой набор суперглобальных (предопределенных) массивов, предназначенных для работы с веб-пространством.

Что такое MySQL?

MySQL – это свободно распространяемая СУБД от компании Oracle . Вместе с бесплатной версией ведется разработка и коммерческих выпусков под заказ. Именно благодаря этому все новые разработки корпорации обязательно внедряются и в бесплатные выпуски СУБД :

Особенности СУБД MySQL :

  • Поддержка механизма репликации данных, начиная с первых выпусков MySQL .
  • Поддерживается работа, как с локальными источниками, так и с удаленными;
  • Встроенная поддержка большого количества типов таблиц. Причем благодаря открытому коду список поддерживаемых типов таблиц увеличивается;
  • Широкий диапазон кроссплатформенности;
  • Размер таблиц баз данных MySQL ограничивается лишь возможностями операционной системы, на которой развернута СУБД ;
  • Поддержка большинства популярных языков программирования с помощью API ( интерфейса прикладного приложения ).

С чего начать?

По горькому опыту многих новичков можно сделать вывод, что главной проблемой самостоятельного изучения PHP и MySQL является выбор правильного программного обеспечения. И все из-за того, что PHP является серверным языком программирования. Поэтому для тестирования кода нужен не только специальный редактор, но и локальный сервер:

Несколько оптимальных вариантов:

  • Apache HTTP Server – можно скачать на официальном сайте разработчика;
  • Денвер – наиболее оптимальный вариант для установки и дальнейшего использования. Пакет инсталляции включает в себя сервер Apache, PHP и MySQL . В первом варианте вам бы пришлось все это скачивать и устанавливать по отдельности.
  • XAMPP – набор, включающий в себя PHP и MySQL . А также встроенный самоучитель по PHP :

Оба набора включают в себя утилиту для создания и изменения баз данных на основе MySQL с помощью запросов на T-SQL . Но для написания кода на PHP понадобится редактор с поддержкой синтаксиса этого языка. Несколько наиболее подходящих вариантов:

  • PHPEdit ;
  • Microsoft WebMatrix ;
  • Kantharos PHP IDE ;
  • Adobe Dreamweaver .

И напоследок хотелось бы дать дельный совет всем начинающим. Не стоит думать, что у вас больше пядей во лбу, чем у всех остальных. Обучение нужно начинать с основ. Поэтому новичкам больше подойдет самоучитель PHP для чайников, а не продвинутый справочник для профессионалов. Тогда и камень веб-науки окажется не таким уж и твердым.

Авторские статьи Начальный практикум в CakePHP

3.4 Кэширование.
К счастью разработчиков CP представляет несколько механизмов управления кэшированием. На мой
взгляд они очень удобны. С их помощью мы сейчас настроем кэширование страниц с описаниями
продуктов и отзывами о них. Стандартно, предлагается несколько вариантов хранения кэшированных
данных, но мы будем использовать файловый, он стоит по умолчанию. За все нужные нам операции
отвечает хэлпер «Cache» ( http :// book . cakephp . org / view /213/ Cache ). Подключив его, настроим
кэширование только результата действия view ( http :// book . cakephp . org / view /346/ Caching — in — the —
Controller). Для этого обозначим массив «cacheAction» как свойство контроллера и поместим туда
ячейку «view/» со значением «86400».

На этом настройка кэширования завершена. Попробуйте подобавлять отзывы и проверить изменился ли
внешний вид страницы.

3.5 Логирование
И последнее что будет рассмотренно в этой статье — логирование данных о работе приложения
(http://book.cakephp.org/ar/view/157/Logging). Подобный функционал может очень пригодиться для
отслеживания ошибок в крупных приложениях, когда сходу не сообразишь где и какой произошла сбой.
Никаких компонентов или хэлперов подключать здесь не нужно. Единственная функция, нужная для
логирования, доступна всегда. Это функция «log». Ей нужно передавать 2 параметра. Первый —
сообщения. Им может быть информация об ошибке, сбое, действии пользователя и т.п. А второй — тип
логируемой информации. В качестве этого параметра может быть передана одна из двух констант —
«LOG_ERROR» и «LOG_DEBUG» — ошибочная или отладочная информация соответственно.
Рассмотрим пример с ошибкой. В методе «view» контроллера «Product» может быть ошибочно указан
товар в ссылке. В связи с этим метод «getProductIdByTName» вернёт ложное значение. Давайте добавим
после вызова этого метода строку

и пройдём по ссылке http://cakephp/product/view/11111111, вызвав тем самым несуществующий товар.
Сообщение будет записано в файл «error.log». Он находится там же где и все логи — в директории
«./app/tmp/logs». Открыв его Вы обнаружите что самая последняя надпись содержит информацию типа
этой — «2009-03-16 20:07:33 Error: Request to non-existing product». А можно вообще выделить в
отдельную группу например только лог-записи связанные с товарами. Для этого в качестве константы
можно передать строку, скажем, «products». В таком случае автоматически создастся файл «products.log»
и в него будет записана вся передаваемая информация.
Вот и всё. Код нашего магазина готов и нормально функционирует. Если у Вас что-то не получилось то
можете взять исходный код всего приложения в прикреплённом архиве «ready.zip».


4.0 Заключение.
На мой взгляд фреймворк хороший, но очень сильно запутанный. Иногда использование некоторых
функций не укладывается в голове — по логике они должны использоваться, например, в контроллере, а
используются в модели. Что-то должно быть компонентом, а является хэлпером. Не понравились и
инструменты для работы с БД. Я больше предпочитаю интерфейсы подобные паттерну ActiveRecord. Ну
и худой функционал — мало хэлперов и компонентов. И всё-таки, как говориться, на вкус и цвет.
Надеюсь, что он понравится читателям. Удачи Вам в Ваших проектах!

Цукерберг рекомендует:  Всплывающие модальные окна с произвольным стилем

CakePHP — мощь и гибкость современного PHP фреймворка

Как быстро овладеть фреймворком CakePHP

CakePHP это программный каркас (фреймворк) для создания веб-приложений, написанный на языке PHP и с открытым исходным кодом.

Андрей Кудлай создал для вас бесплатный курс из пяти видео уроков. Которые помогут вам ближе познакомиться с одним из наиболее удивительных и удобных в работе PHP-фреймворков – CakePHP.

Менее чем за 3 часа вы уже сможете составить собственное мнение о Кейке. Сможете понять, подойдет ли вам лично этот очень полезный инструмент. Или стоит поискать что то другое.

Изучив уроки данного курса вы сможете понять базовые принципы работы CakePHP. Ознакомитесь со всеми плюсами и минусами этого каркаса, воочию убедитесь в его простоте и мощи.

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

CakePHP с нуля: базовые принципы

Приветствую Вас, коллега!

На связи Алексей Пиминов.

Хотите брать самые дорогие заказы на фрилансе или продвигаться по карьерной лестнице в веб-студиях как программист и веб-мастер?

Нет ничего проще!

Мои коллеги из команды WebForMySelf создали для вас бесплатный мини-курс из пяти видеоуроков, которые помогут вам ближе познакомиться с одним из наиболее удивительных и удобных в работе PHP-фреймворков – CakePHP.

Менее чем за 3 часа вы уже сможете составить собственное мнение о Кейке, сможете понять, подойдет ли вам лично этот сверхполезный инструмент, или стоит поискать что-либо еще…

Уверен, что после изучения этих уроков, вы останетесь фанатом CakePHP на всю оставшуюся жизнь, как это произошло и со мной.

Я обещаю, что уже сегодня вы сможете понять базовые принципы работы CakePHP, ознакомитесь со всеми плюсами и минусами этого каркаса, воочию убедитесь в его простоте и мощи.

CakePHP

Программный каркас для создания веб-приложений

Все подряд

Лучшие

Авторы

Hotty 31 марта 2015 в 12:01

Все еще торт, часть 3.0.0

  • Блог компании IlkFinKom,
  • PHP,
  • Программирование,
  • CakePHP
  • Перевод
  • Tutorial

Наконец-то вышел в релиз CakePHP 3.0.0.

Наша компания использует в разработке в том числе cakephp, как основной фреймворк для бэкэнд разработки. На протяжении четырех лет мы досконально разобрались в его преимуществах и недостатках. И, конечно, многие проблемы, которые исчезнут с переходом на 3.0 нами уже были решены, но развитие используемого инструмента не может не радовать. После этого обновления мы рассчитываем, что cakephp снова вернёт себе заслуженную популярность.

Новости

Повышаем стабильность сессии в CakePHP 2.x

  • Блог компании Web-payment.ru,
  • CakePHP
  • Перевод
  • Tutorial

От переводчика: при разработке Web-payment.ru на фреймворке CakePHP мы сталкивались с самого начала с тем, что логаут пользователей происходил каждые несколько часов, а это слишком короткий промежуток времени. При этом сколь большие значения timeout и cookieTimeout мы бы не выставляли в настройках ядра, ничего не менялось. Данная статья решила для нас эту проблему.

В прошлом году я обращался к этому вопросу как минимум дважды, но практически безрезультатно. После длительных поисков решения я снова отложил его на неопределенное время. Здесь также следует сказать, что когда дело касается отлаживания session/cookie вещей (в данном случае — аутентификации), процесс поиска багов никогда не отличался простотой, поскольку он зависит от множества факторов, которые складываясь вместе, усложняют обнаружение проблемы.

В документации Cake также не говорится, что для длительной работы php-сессий необходимо увеличить значение внутренней переменной max_lifetime. Я вообще наткнулся на нее случайно, потому что всегда думал, что об этом позаботился сам фреймворк, однако даже после того, как я сделал базу данных контейнером сессий, я не заметил каких-либо улучшений. Поэтому я подумал, что чистка памяти на стороне сервера здесь, видимо, вообще не причем, ну или по крайней мере, влияет не только она одна.

Mirantus 10 октября 2014 в 08:38

Что нового в CakePHP 3.0.0?

Здравствуйте, уважаемые читатели. В данной статье хотелось бы написать о новой версии CakePHP и возродить интерес к этому замечательному PHP фреймворку. Последняя заметка в блоге о CakePHP датирована почти годом назад и многие могли подумать, что фреймворк прекратил своё существование, однако это не так. Он очень активно развивается и весьма популярен в западных странах и его используют такие компании, как BMW и Hyundai.

Текущая стабильная версия CakePHP – 2.5.5. Давайте кратко посмотрим, какие возможности предоставляет этот фреймворк сейчас, а затем подробно остановимся на новинках, которые появятся в 3.0.0.

Валидатор HTML-форм

Доброго времени суток уважаемый %username%.

Каждый программист хоть раз в своей жизни сталкивался с унаследованным кодом. Иногда такой код вызывает реакцию: «Что это за дрянь|лапша|говнокод, давайте его перепишем».

Так произошло и с проектом к которому я присоединился. 200-300 строчные методы, дублирование кода, процедурный подход вместо использования ООП не вызывали ни каких положительных эмоций. К счастью ПМ оказался очень адекватным человеком и не отмахнулся от просьбы выделить время на рефакторинги. Один из таких рефакторингов в итоге вылился в плагин валидации HTML-форм, которым я и хочу поделиться.

Курсы CakePHP с созданием полнофункционального приложения

Новая статья от InBenefit, и на очереди еще один отличный PHP-фреймворк для разработки веб-приложений. То, что их так много, вовсе не удивительно, ведь PHP входит в пятерку популярных языков программирования по версии GitHub, уступая лишь JavaScript, Java и Ruby. Сегодня мы представляем вашему вниманию еще один программный каркас, на который стоит обратить внимание. Это CakePHP.

Созданный по принципу открытого программного обеспечения, программный фреймворк CakePHP разработан с реализацией шаблона MVC. В качестве основы был использован не менее известный фреймворк Ruby on Rails с заимствованием из него многих удачных идей. От аналогичных фреймворков отличается поддержкой PHP4/5. На том же GitHub CakePHP находится в четверке самых популярных PHP-технологий, на которой создано больше 130 тысяч проектов.

Достоинства CakePHP:
— улучшенное управление сессиями для простого тестирования и поддержка PHPUnit 4.x;
— согласование каркаса приложения и каркасов плагинов;
— упрощение сборки и перекомпоновки за счет возможности использования плагинов в качестве тем;
— сокращение времени обучения для новичков;
— структура, предусматривающая необходимость строгого следования соглашениям, приучает писать код правильно;
— простая адаптация под любые проекты;
— полная и легко читаемая документация.

Хотите выучить CakePHP у опытного преподавателя? Тогда выберите курсы Udemy (15-миллионой площадки для онлайн-обучения), которые наши специалисты подобрали специально для вас. Вы всего в шаге от получения важных дополнительных навыков программирования.

Курсы CakePHP с созданием полнофункционального приложения

Разработка веб-приложений на PHP с CakePHP 2


Преподаватель: IO LEARN (качественная площадка для компьютерного онлайн-обучения)
Стоимость: 20$
Количество студентов: 249+
Объем программы: 22 лекции; 1,5 часа
Уровень подготовки (требования для курса): основы PHP и HTML

Чему вы научитесь?
— Понимать принцип разработки на CakePHP
— Понимать шаблон MVC
— Создавать полноценное приложение
— jQuery AJAX

В программе этого курса предусмотрено больше 20 интерактивных видеолекций, которые дадут вам начальные знания по веб-разработке на одном из лучших фреймворков – CakePHP. Всего за каких-то полтора часа вы освоите все, что вам понадобится для профессиональной веб-разработки: от паттерна MVC до создания полнофункционального приложения.

Сначала вы научитесь устанавливать и настраивать CakePHP. Затем вам расскажут, как создавать свою тему и свои компоненты. Для реализации AJAX-функций в разрабатываемом приложении вы глубже изучите jQuery.

Целевая аудитория курса – начинающие и опытные разработчики, которые хотят учиться на практике. Если это о вас, смелей записывайтесь на курс прямо сейчас!

Передовые методы разработки на CakePHP 3

Преподаватель: IO LEARN
Стоимость: 20$
Количество студентов: 44+
Объем программы: 21 лекция; 50 минут
Уровень подготовки (требования для курса): основы PHP и HTML; иметь базовые знания о разработке на CakePHP (пройти первый курс из нашей подборки)

Чему вы научитесь?
— Принципы работы с CakePHP 3.x
— Повышать безопасность разработанных приложений
— Использовать компонент CSRF
— Реализовывать функции CAPTCHA в своих приложениях
— Регистрировать все события в приложении в базе данных
— Использовать плагин DataTables для jQuery
— Использовать TimeHelper

Если первый курс в нашем обзоре начальный, в котором можно узнать основные принципы разработки на CakePHP, то этот курс его своеобразное продолжение.

В рамках программы курса вас научат реализовывать защиту приложения с помощью компонента от межсайтовой подделки запроса (CSRF). Вы научитесь регистрировать события, происходящие в вашем приложении, и сохранять их в базу данных MySQL. Также вы изучите основные отношения (BelongsTo, HasOne, HasMany и BelongsToMany) и оцените в действии ассоциации и «жадную загрузку». Кроме того, вас научат работать с TimeHelper и избегать появления многих ошибок MySQL. Вы также сами реализуете поведение базы данных.

Целевая аудитория – начинающие разработчики, имеющие понятие о разработке с фреймворком Cake PHP и желающие улучшить свои навыки с применением более серьезных подходов. Не теряйте времени и пройдите этот курс сразу же, после того как пройдете первый.

Это были самые лучшие курсы по CakePHP, с которыми ваши навыки будут однозначно прокачаны. В современном конкурентном мире веб-разработки знания, подтвержденные опытом, никогда не бывают лишними. Поэтому не поленитесь и займитесь дополнительным образованием в самое ближайшее время.

Перед началом обучения на любом из представленных курсов вам обязательно нужно иметь базовые знания PHP и HTML. Соответственно, советуем пройти курсы PHP и HTML.

Какова производительность CakePHP?

Как уже писал комрад opium, xprof — отличная тулза для профилирования РНР приложений.
Если вас интересует субъективное мнение и особенности архитектуры…
В принципе самым слабым местом существующих РНР фреймворков является реализация ORM, кэширования и шаблонизации.
По личному субъективному опыту могу сказать что Yii и Symfony2 имеют самые эффективные реализации этого стафа.
Но у Symfony2 намного более развита инфраструктура, комьюнити… и в целом он для меня намного удобней.
По поводу того что Symfony медленее Yii могу лишь сказать что только в dev mode, в продакшене разницы особо не чувствуется. CakePHP по производительности почти догоняет kohana. В большинстве случаев на производительность самого фреймворка влияет использование Dependency Injection и других паттернов, а также немного паттерн самого ORMа — Active Record или Object Mapping.

APC не тортъ. Лучше если вы возьмете xcache и будете кэшировать в нем байткод приложения и запросы к базе.
memcached не тортъ для кэширования запросов БД если у вас только одна машина. Т.е. memcached хорошо использовать в кластере. В остальных случаях xcache быстрее так как он реализован в виде плагина к РНР.

Не раз был свидетелем мем. лика memcached… не забывайте задавать ttl объектов в кэше! Это довольно распространенная ошибка. Реализовуйте поддержку etags и if-modified-since хеддеров для http кэширования каждой страницы по mark-tagged принципу. И тогда за nginx’ом вам вообще не придется беспокоится о производительности фреймворков…
Некоторые Yii извращенцы на офф. форуме фреймворка писали что если использовать с xcache параллельно eaccelerator, то можно добиться довольно впечатляющих результатов. Не знаю правда ли это… но советую вам проверить.

Bookmarker Tutorial

П еред тем как приступить к созданию приложения убедитесь, что у вас установлен локальный сервер и скачена актуальная версия самого фреймворка CakePHP. Так же убедитесь в том, что локальный сервер запущен, а заготовка вашего приложения открывается через адресную строку браузера (например: http://yousite.loc) в виде стартовой страницы фреймворка (вид на момент написания статьи):

Страница приветствия кейка, так же, выводит информацию о настройке расширений PHP, плагина DebugKit и информацию о подключении вашего приложения к базе данных. Если напротив соответствующей настройки фигурирует зеленый маркер, то проблем нет, в противном случае маркер будет красным и вам придется изменить необходимые настройки PHP (в статье по установке фреймворка CakePHP 3 это рассматривалось). На рисунке выше видно, что красный маркер стоит около настройки подключения к базе данных, которое мы ещё не успели произвести.

Создание базы данных

Далее, давайте создадим базу данных для нашего сайта закладок. Если вы еще не сделали этого, то создайте пустую базу данных, которую мы будем использовать в этом учебнике, с именем по вашему выбору, например, cake_bookmarks.

Внимание! При создании базы данных не забудьте указать нужную вам кодировку. В моем случае это будет utf8_general_ci.

Чтобы создать в базе необходимые таблицы, можно выполнить следующий SQL запрос:

Обратите внимание, что в таблице bookmarks_tags (таблица для организации связи многие ко многим) используется составной первичный ключ. CakePHP поддерживает составные первичные ключи практически везде, что облегчает проектирование мульти-арендуемых (multi-tenanted) приложений.

Имена таблиц и столбцов, которые мы использовали, не были произвольными, а были сформированы на основании соглашений об наименованиях. Это позволяет нам эффективно использовать возможности CakePHP и избежать необходимости выполнять дополнительные настройки.

Конфигурация базы данных

Далее, давайте скажем CakePHP, что у нас существует база данных и мы желаем к ней подключиться. В большинстве случаев вам больше не придется возвращаться к этой настройке при работе с приложением.

Для выполнения подключения подставьте в массив Datasources.default конфигурационного файла config/app.php значения, которые применимы для вашей базы данных. Это username (имя пользователя, для локального сервера — это как правило root), password (пароль — для локального сервера как правило отсутствует) и database (имя базы, в нашем примере это cake_bookmarks). Готовый массив-пример конфигурации БД может выглядеть следующим образом:

После того, как вы сохраните файл config/app.php и обновите стартовую страницу CakePHP, красный маркер, рядом с информацией о подключении к базе данных, изменится на зеленый.

Внимание! Копия файла конфигурации CakePHP (конфигурация по умолчанию), находится в config/app.default.php. Поэтому, если вы что либо напортачили с конфигурацией, всегда можно исправить ситуацию, воспользовавшись указанной копией.

Генерация основного кода


Поскольку наша база данных соответствует соглашениям CakePHP, мы можем использовать консольное приложение Кейка для быстрого создания базовой структуры сайта. Для этого, находясь в папке своего проекта, вызовите командную строку и выполните следующие команды:

// Если у вас Windows, то используйте обратный слэш (например bin\cake bake all users).
bin/cake bake all users
bin/cake bake all bookmarks
bin/cake bake all tags

Консоль фреймворка создаст необходимые контроллеры, модели и представления для наших пользователей (users), закладок (bookmarks) и тегов (tags). CakePHP, так же, учтет логику взаимодействия между указанными моделями (связи, которые мы прописывали при создании таблиц базы данных). Если вы остановили свой локальный сервер, запустите его и перейдите к http://yousite.loc/bookmarks.

В окне браузера вы должны увидеть простой, но функциональный интерфейс управления данными приложения, предоставляющий доступ к созданным таблицам базы данных. Используя интерфейс, добавьте по нескольку записей в каждую таблицу.

Внимание! Если вы видите сообщение, что страница не найдена: Not Found (404), убедитесь, что в Apache загружен модуль mod_rewrite.

Добавление метода хэширования паролей

При создании пользователей (по адресу http://yousite.loc/users), вы, вероятно, заметили, что пароли хранятся в виде обычного текста. Это очень плохо с точки зрения безопасности, так что давайте эту ситуацию исправим.

Так же, настало время, чтобы поговорить о слое модели. В CakePHP, существуют методы, которые управляют коллекциями объектов (например: пользователи, закладки, теги) и методы, относящиеся к единичному объекту (например: пользователь, закладка, тег). Методы, которые работают с коллекциями располагаются в классе таблицы, в то время как функции, принадлежащие к одной записи находятся в классе единичного объекта (Entity).

Например, хеширование пароля производится для отдельной записи (пользователя), поэтому оно реализуется в классе Entity (для одиночного объекта). Хеширование будет выполняться каждый раз, когда происходит присваивание значений свойствам объекта при его сохранении. Для реализации указанной задачи, внесем изменения в файле src/Model/Entity/User.php:

Теперь, при создании нового пользователя, либо при изменении пароля существующего пользователя, на странице http://yousite.loc/users вы уведите зашифрованные пароли, находящиеся в столбце password. По умолчанию, CakePHP осуществляет хэширование паролей согласно стандарту bcrypt. Так же, вы можете использовать другие алгоритмы хэширования, такие как sha1 или md5.

Внимание! Если у вас не происходит хэширование пароля, то убедитесь, что название функции соответствует названию столбца в базе данных. Например: если столбец password, то функция будет называться _setPassword, но если вы назвали столбец pass, то название функции будет _setPass.

Получение закладок по тэгам

Теперь, когда мы храним пароли безопасно, можно определенным образом расширить наше приложение. При накоплении коллекции закладок, полезно иметь механизм их сортировки по определенным признакам (тэгам). Далее мы реализуем маршрут (route), действие контроллера (action), и метод для поиска закладок по тэгам.

В идеале нам нужен URL, который бы выглядел следующим образом: http://yousite.loc/bookmarks/tagged/funny/cat/gifs. Это позволит нам найти все закладки, которые имеют теги ‘funny’, ‘cat’ или ‘gifs’. Итак, для того, чтобы продолжить, мы добавим новый маршрут. Для этого внесем соответствующие записи в конфигурационный файл маршрутизации config/routes.php, который будет выглядеть следующим образом:

И так, мы определили новый маршрут для пути /bookmarks/tagged/, который вызовет функцию tags() в контроллере BookmarksController (BookmarksController::tags()). Таким образом, прописывая маршруты, вы можете определять как будут выглядеть ваши URL адреса и как они будут реализовываться. Теперь, если вы посетите маршрут http://yousite.loc/bookmarks/tagged, то увидите страницу ошибки от CakePHP, информирующую о том, что действие контроллера tags() не существует. Давайте реализуем этот отсутствующий метод, путем внесения соответствующего изменения в контроллер src/Controller/BookmarksController.php:

Более подробную информацию по получению доступа к другим данным запроса ($this->request), вы найдете, обратясь к разделу Request официального сайта Кейка.

Создание метода поиска

Для того, чтобы контроллеры нашего приложения не были перегружены кодом, большую часть логики в CakePHP принято размещать в моделях. Если вы посетите URL адрес /bookmarks/tagged, то увидите сообщение об ошибке, говорящее, что метод findTagged() еще не реализован. Чтобы это исправить, давайте внесем соответствующие изменения в файл src/Model/Table/BookmarksTable.php

Выше мы реализовали свой собственный (пользовательский) метод поиска find(). Это очень мощная концепция в CakePHP, которая позволяет создавать и повторно использовать разного рода запросы. Finder методы всегда получают объект Query Builder (объект запроса) и массив опций в качестве параметров. Искатели могут манипулировать запросами и добавлять любые необходимые условия или критерии, возвращая после своего завершения измененный объект запроса. В нашем поиске мы использовали метод innerJoinWith(), позволяющий находить различные закладки, которые относятся к соответствующему тегу (тегам). Метод innerJoinWith(), в качестве аргумента принимает анонимную функцию, определяющую условия запроса (внутри обратного вызова мы используем конструктор запросов, чтобы определить условия, согласно которым будут фильтроваться закладки, относящиеся к тегу поиска).

Создание вида (View)

Теперь, если вы посетите URL /bookmarks/tagged, CakePHP покажет ошибку, которая укажет на то, что не был создан файл представления. Далее, давайте создадим такой файл (src/Template/Bookmarks/tags.ctp) для нашего действия tags() и поместим в него следующее содержание:

В приведенном выше коде используется HTML и Text помощники (helpers — хелперы), которые помогают упростить процесс создания внешнего вида нашего представления. В примере, так же, используется функция h — аналог php функции htmlspecialchars(). С целью исключения проблем, связанных с инъекциями, настоятельно рекомендуется пропускать все данные, получаемые от пользователей, через функцию h().

Файл tags.ctp, который мы только что создали, следует соглашениям CakePHP для файлов шаблонов представления. Соглашение состоит в том, что имя файла шаблона повторяет название экшена (tags()) контроллера, записанное в нижнем регистре.

Обратите внимание, что в шаблоне вида использовались переменные $tags и $bookmarks, которые были определены методом set() в контроллере и отправлены в представление. Слой View сделал их доступными в шаблоне как локальные переменные.

Теперь, если вы посетите URL адрес /bookmarks/tagged/funny, приложение выведет в браузер все закладки, относящиеся к тегу ‘funny’.

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

На этом пока все, жду вас во второй части примера по созданию сайта закладок на основе фреймворка CakePHP (Bookmarker Tutorial, часть 2).

Изучаем PHP и MySQL правильно

Есть в веб-программировании такие дисциплины, основы которых обязан знать любой человек, связанный с всемирной паутиной. Поэтому, так или иначе, а изучать PHP и MySQL вам придется. А если не хотите, то жадность все равно заставит:

Зачем изучать php и MySQL?

Такой вопрос могут задавать лишь те, кто совсем не знаком со спецификой построения веб-пространства и ее современной основой. Любой мало-мальски сведущий в программировании человек скажет, что эти две дисциплины являются на сегодняшний день главенствующими во всемирной паутине. А это значит, что почти весь интернет построен на основе PHP и MySQL :

Хотя в наше время значение PHP немного уменьшилось. И все из-за большого количества движков, которые ( по иронии ) также построены на основе этого языка.

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

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

  • Востребованную профессию – на рынке труда толковые программисты всегда были нарасхват. Но даже неопытные новички с хорошими теоретическими знаниями PHP и небольшим опытом в веб-программировании смогут найти работу с достойной оплатой;
  • Удаленную работу – для того чтобы заниматься программированием не обязательно рано вставать, добираться на работу и соблюдать дресскод. Все это можно оставить за порогом, и создавать программный код, сидя дома в комнатных тапочках;
  • Экономию денег – если вы являетесь владельцем сайта, то конечно знаете, что услуги профессиональных веб-программистов стоят дорого. А для начинающего свое дело в интернете дорога каждая копейка. Самостоятельное обучение MySQL и PHP позволит сэкономить средства и пустить их в нужное русло.

Как уже отмечалось, большинство современных движков работают на основе PHP . Хотя их отказоустойчивость и находится на высоком уровне, но влияние человеческого фактора никто не отменял. Поэтому код CMS иногда ведет себя не так, как задумал веб-программист.

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

  • Интересное хобби – веб-программирование это не только средство зарабатывания денег или их экономии. Это еще и увлекательное занятие, которое совмещает в себе как техническое начало, так и творческую составляющую.

Что такое PHP

PHP относится к скриптовым языкам программирования. Чаще всего он применяется для создания веб-приложений и веб-сервисов. Данный язык поддерживается большинством хостингов в интернете. На его основе написана основная часть динамических сайтов.

Популярность PHP объясняется его следующими характеристиками:

  • Поддержка большинства популярных СУБД ( Систем Управления Базами Данных );
  • Автоматическая отправка заголовков HTTP ;
  • Встроенная поддержка работы с сессиями и cookies;
  • Средства работы с удаленными файлами;
  • Поддержка XForms ( формы, созданные на основе XML );
  • Приближенность синтаксиса PHP к языку C;
  • Отсутствие строгой типизации – типизация переменных осуществляется динамически.
  • Поддержка ООП ( объектно-ориентированного программирования );
  • Большой набор суперглобальных (предопределенных) массивов, предназначенных для работы с веб-пространством.

Что такое MySQL?

MySQL – это свободно распространяемая СУБД от компании Oracle . Вместе с бесплатной версией ведется разработка и коммерческих выпусков под заказ. Именно благодаря этому все новые разработки корпорации обязательно внедряются и в бесплатные выпуски СУБД :

Особенности СУБД MySQL :

  • Поддержка механизма репликации данных, начиная с первых выпусков MySQL .
  • Поддерживается работа, как с локальными источниками, так и с удаленными;
  • Встроенная поддержка большого количества типов таблиц. Причем благодаря открытому коду список поддерживаемых типов таблиц увеличивается;
  • Широкий диапазон кроссплатформенности;
  • Размер таблиц баз данных MySQL ограничивается лишь возможностями операционной системы, на которой развернута СУБД ;
  • Поддержка большинства популярных языков программирования с помощью API ( интерфейса прикладного приложения ).

С чего начать?

По горькому опыту многих новичков можно сделать вывод, что главной проблемой самостоятельного изучения PHP и MySQL является выбор правильного программного обеспечения. И все из-за того, что PHP является серверным языком программирования. Поэтому для тестирования кода нужен не только специальный редактор, но и локальный сервер:

Несколько оптимальных вариантов:

  • Apache HTTP Server – можно скачать на официальном сайте разработчика;
  • Денвер – наиболее оптимальный вариант для установки и дальнейшего использования. Пакет инсталляции включает в себя сервер Apache, PHP и MySQL . В первом варианте вам бы пришлось все это скачивать и устанавливать по отдельности.
  • XAMPP – набор, включающий в себя PHP и MySQL . А также встроенный самоучитель по PHP :

Оба набора включают в себя утилиту для создания и изменения баз данных на основе MySQL с помощью запросов на T-SQL . Но для написания кода на PHP понадобится редактор с поддержкой синтаксиса этого языка. Несколько наиболее подходящих вариантов:

  • PHPEdit ;
  • Microsoft WebMatrix ;
  • Kantharos PHP IDE ;
  • Adobe Dreamweaver .

И напоследок хотелось бы дать дельный совет всем начинающим. Не стоит думать, что у вас больше пядей во лбу, чем у всех остальных. Обучение нужно начинать с основ. Поэтому новичкам больше подойдет самоучитель PHP для чайников, а не продвинутый справочник для профессионалов. Тогда и камень веб-науки окажется не таким уж и твердым.

Цукерберг рекомендует:  Вакансии написать плагин под cms joomla
Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих