Как научиться программировать web приложения на PHP

Что такое PHP

PHP лучше всего охарактеризовать как работающий на стороне сервера встроенный язык web сценариев, позволяющий разработчикам быстро и эффективно создавать динамические web-приложения. С позиций грамматики и синтаксиса PHP напоминает язык программирования C, хотя разработчики включили в него некоторые весьма полезные средства из других языков программирования, в том числе из Perl, Java и C++. Среди ценных заимствованных возможностей – поддержка регулярных выражений, мощные средства работы с массивами, объектно-ориентированная методология и обширная поддержка работы с различными базами данных.

Почему PHP

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

К настоящему моменту PHP стал одним из самых популярных скриптовых языков, используемых для разработки простых и средних по уровню сложности сайтов. Хотя встречаются и достаточно крупные и очень посещаемые ресурсы. Поддержка этого языка входит в состав услуг большинства виртуальных хостингов в России и других странах. А установка PHP под Windows является несложной задачей. Подобная доступность делает этот язык еще более привлекательным для разработки сайтов и вынуждает хостинговые компании устанавливать и поддерживать PHP. Вся эта ситуация, как вы понимаете, только играет на руку web-разработчикам. Меняя по каким-то причинам хостинг, вы без проблем найдете новый дом для вашего сайта, что не всегда будет легко в случае использования других языков, отличных от PHP.

Программирование

Программирование – это отдельная наука, в которой чтобы преуспеть, надо специально учиться. Учиться по книгам с упражнениями, в университете или на специальных курсах. Лучше если все это грамотно сочетается. Если у вас до этого не было опыта программирования на других языках, а такие слова, как «алгоритм», «компилятор», «переменная», «массив», «функция», «метод»… не вызывают у вас вполне конкретных (и правильных) ассоциаций, то сначала все-таки надо хоть немножко поучиться «программированию» как таковому. И мне кажется, что PHP не самый хороший язык, для того, чтобы учиться «программированию». Можно порекомендовать познакомиться с языком C и почитать книги, в которых рассматриваются общие вопросы программирования, составления алгоритмов, структурное и объектно-ориентированное программирование. К сожалению, хорошие книги по этой тематике сейчас не всегда легко найти в книжных магазинах, поэтому можно заглянуть в букинисты или обратиться за помощью к знакомым программистам. В любом случае, будет хорошо, если рядом будет человек, занимающийся программированием профессионально, и вы сможете обращаться к нему за консультациями.

Отличие PHP от того же самого C состоит и в назначении, и в синтаксисе, и в том, что PHP – язык интерпретируемый и не требует объявления переменных. Изучение PHP как первого языка, на котором вы будете учиться программировать, может создать не совсем правильное отношение к некоторым вещам, и сформировать поверхностное знания по ряду вопросов.

Программирование для web

Программирование для web имеет свои особенности в отличие от других типов программирования, например, разработки обычных программ, выполняющихся на клиентских машинах.

Для того чтобы программировать для web, вам необходимо быть знакомым хотя бы со следующими технологиями и понятиями:

  • HTML
  • HTML Формы
  • GET и POST
  • Cookies
  • CSS
  • Верстка

Без их понимания вы не напишите нормального web приложения, зато можете совершить много различных ошибок. Поищите документацию в интернете, а по HTML и CSS, если вы с ними незнакомы, можно купить книжку-учебник или справочник. Хотя есть категории людей, которые всегда обходятся официальной документацией на английском. Их можно понять, как правило, это ничего не стоит, и оплачивается только соединение с интернетом, затраченное на скачивание нужных файлов. Но не всегда такой подход оправдан. Существуют хорошие книжки, которые могут сэкономить много вашего времени и научить вас различным приемам и подходам, которые вы, изучая предмет по документации, или совсем не узнаете, или дойдете своей головой, но уже много позже. Так что если хотите заняться программированием для web серьезно, то не жалейте совсем уже денег на книжки. Не будет лишним и хороший учебник по PHP. Главное убедитесь, что книга не устарела, и описанная в ней версия PHP еще актуальна.

Безопасность

Разработка web приложений имеет и еще одну особенность, которой надо уделять много внимания. Это безопасность, которой, к сожалению, так часто пренебрегают новички:

  • Не доверяйте никаким данным, полученным снаружи. Будь то данные от пользователей или из интернета. Обязательно преобразовывайте данные к тем типам, которыми они должны быть. Например, если в качестве параметра полученного из URL должно быть целое число, значит принудительно сделайте соответствующее преобразование средствами PHP.
  • Особо внимательно следите за теми данными, которые участвуют в ваших SQL запросах при работе с базой данных, в том случае если вы используете реляционную базу данных, например, MySQL.

Одна из самых распространенных проблем, с которыми сталкиваются новички, которые берут чужой код, или хотят проверить, как работает пример из книжки, это отключенная «регистрация глобальных переменных». До версии PHP 4.2 все переменные, которые передавались методами POST, GET или были получены из COOKIES автоматически становились доступны скрипту как глобальные переменные. Но подобный подход был угрозой безопасности приложения, т.к. при некорректной реализации логики работы, можно было обходить, например, системы защиты и проверки прав пользователя.

Начиная с PHP 4.2 в php.ini появилась опция register_globals, которая принимала два значения и позволила управлять регистрацией глобальных переменных:
register_globals=On – все параметры, передаваемые скрипту, автоматически становятся глобальными переменными.
register_globals=Off – параметры, передаваемые скрипту, заносятся в массивы $_GET, $_POST, $_FILES, $_COOKIE, …

Причем по умолчанию эта переменная устанавливалась в значение Off. Если вы столкнулись с этой проблемой, ни в коем случае не переставляйте ее значение в On, думая, что при этом проблема решена. Лучше измените ваш скрипт так, чтобы он получал значения нужных переменных из специальных массивов.

Мануал

Обязательно скачайте себе справочник (мануал) для той версии PHP, которую вы используете. Для пользователей windows наиболее оптимальным является документация в формате chm, которая обеспечивает удобный переход к функциям и поиск с достаточно неплохой сортировкой.

Перед тем как писать какой-то кусок кода, изучите список функций, которые вам могут пригодиться. На текущий момент у PHP достаточно мощная библиотека и много задач, которые вы можете решить, скомбинировав 2–3 функции из библиотеки, вместо того, чтобы писать сложный код, который зачастую может еще и содержать ошибки. Сразу научиться правильно «комбинировать» библиотечные функции может и не получиться, но со временем при хорошей практике вы будете делать это с легкостью. Помните, что библиотечный код работает быстрее, чем ваш PHP код, и он более надежен, так что всегда, когда это возможно, используйте его!

Кроссплатформенность

Разработка кроссплатформенного приложения на PHP означает, что он будет работать под разными операционными системами. Как правило, речь идет о совместимости с Windows, Linux и FreeBSD. Последние два являются самыми распространенными ОС, которые используют на хостингах, тогда как Windows как правило служит ОС на которой приложение разрабатывается и отлаживается.

Думая о кроссплатформенности не забывайте про:

  • Регистр букв в именах файлов. (Под Windows регистр несущественен, тогда как под Unix-ом файлы, различающиеся в регистре хоть одной буквой, – это разные файлы.)
  • Имена таблиц в MySQL. (Следствие предыдущего пункта, т.к. MySQL хранит данные таблиц на диске, и под каждую таблицу создается несколько файлов, имена которых совпадают с именем таблицы, то если вы будете использовать в именах таблиц смешанный регистр, то и в коде вы должны будет использовать это имя. Но лучше называть таблицы в нижнем регистре, а для разделения частей имен использовать подчеркивания, иначе проблемы могут возникнуть, например, при создании дампа баз под Windows и их переноса на Unix).
  • Различия в .htaccess файлах. (В Windows для разделения нескольких путей в .htaccess используется символ «;», т.к. «:» используется после букв дисков, тогда как под Unix для разделения используется именно «:»).

Базы данных (MySQL, Postgres, SQLite)

Если вы разрабатываете сложный или большой сайт, то наверняка вам понадобится реляционная база данных. Под Unix из бесплатных для некоммерческого использования наиболее часто используются MySQL и Postgres. У каждой из них есть свои преимущества и недостатки, и выбор базы данных зависит от вас самих и от тех задач, которые вы собираетесь решать. Хотя в последнее время грань между их функциональностью и различиями почти стерта.

В PHP 5.0 должна быть поддержка некоторого подмножества языка SQL – SQLite, так что можете присмотреться и к нему. Преимуществом SQLite будет то, что он «встроен» в PHP 5, и по заявлениям разработчиков работает в несколько раз быстрее, чем MySQL и Postgres. Хотя последнее утверждение еще предстоит проверить на практике. Но следует помнить, что пока в SQLite нет всей функциональности полноценных реляционных баз данных.

Если вы не знакомы и нет опыта работы с реляционными базами данных, то обязательно надо почитать какой-нибудь хороший учебник. Например, книгу «SQL» Мартина Грабера.

Источник: dak.mmforce.net

  • Каким должен быть ИТ-директор
  • Банковский консорциум: автоматизация колосса
  • Управление в малых ИТ-подразделениях.
  • Правильный счет
  • Автоматизация в условиях неопределенности
  • Национальные подходы к системам поддержки НСИ
  • Что такое ЕСМ?
  • Пять главных проблем внедрения СЭД
  • "Софт" для директора
  • Что спасет от информационного хаоса.
  • Корпоративное ПО: заказ или тираж?
  • Сколько стоит ERP построить
  • 4G: прыжок через поколение
  • Рост числа подключений по широкополосному доступу
  • Телевидение через Интернет
  • Правильное использование ICQ как средства сетевого общения
  • Версия для печати, версия для сохранения
  • Как научиться программировать web приложения на PHP
  • История создания MySQL
  • Спам: ход разработчиков web сайтов и web сервисов
  • Древовидный форум vs. плоский форум
  • История создания и развития PHP
  • История HTML
  • «Казаки-разбойники» на новый лад. GPS-навигация: технологии, приборы, перспективы.
  • RIPS – техасская попытка создать принципиально новый процессор.
  • Страничка истории.
  • Лазерный грызун: A4Tech X-750-F2.
  • Как заставить систему Vista работать быстрее.
  • В 2008 году в России будет создан интернет-портал госуслуг.
  • Netscape Navigator прекращает существование.
  • Отзывы о разгоне серийных процессоров Phenom 9500 (2.2 ГГц)
  • Поддержка Yorkfield и чипсеты NVIDIA: комментарии EVGA
  • Звуковидеокарта
  • Как выбрать сканер для дома?
  • OFF или "Свободная файловая система владельца"
  • Чужаки в системных папках.
  • Тонкая настройка контекстного меню файлов и папок
  • Как избавиться от проблем с CD и DVD приводами?
  • Выбираем корпус и блок питания.
  • Файловые системы.
  • Локальные сети это просто?
  • Обзор двух USB Bluetooth адаптеров фирмы Espada.
  • Самые полезные функции Windows Vista.
  • Реанимируем систему с помощью USB-брелока.
  • .htaccess - великий и ушастый защитник всего живого
  • Разведение сетей в домашних условиях
  • Интернет или Web?
  • Слава информации!
  • Как сделать идеальный портрет
  • Первое настоящее и интерактивное
  •