Как я научился программировать на PHP
Помню что это был 2002-й, когда я окончил школу с уклоном в физику, математику и информатику. У нас в школе был очень популярен паскаль и особенно делфи. Естественно что мне тоже довелось узнать что это такое, и я сразу возненавидел это говно: делфи и паскаль. За их тормознуть, за то, что программы весят мегабайты, что компоненты не подходят под разные версии делфи и кучу всего другого, которое уже и не вспомню.
На тот момент мой одноклассник, показал мне что такое ассемблер, нас тогда привлекало то, что оконную windows-программу можно уместить в 1 кб. Со временем мы решили создать сайт посвященный ассемблеру. Но стал вопрос как создать сайт. Учитывая, что я умел на тот момент создавать html страницы, знал что такое CSS, то за создание сайта отвечал я. Но html-сайт нас сразу не устраивал, хотелось чего-то крутого, с голосованием, комментариями и т.п.
Как сейчас я вспоминаю тогда я и узнал что «крутые» сайты пишут либо на PHP либо на Perl. Начал изучать и то и другое, Perl практически сразу забросил, потому что на тот момент его синтаксис мне, человеку привыкшему к паскалю был сложен. Получилось в итоге вот что: asm.fatal.ru. Сайт я делал, когда мне было около 17 лет, так что критика не принимается. Контакты на сайте не действительны, не пишите по ним.
Отмечу что все что там есть написано было с нуля, CMS там не используется, потому что я даже не знал что это такое в то время. Отмечу что ссылки вида /index.php?page=programs я так же придумал сам. Тогда мне казалось это просто гениальным изобретением, ведь можно написать один php файл и использовать его как шаблон. Голосование так же сделал я сам с нуля, чем гордился тогда. Все каменты, посты хранятся по сей день там в файлах, потому что mysql на фрихостинге не было, да и я не знал что это такое. Жаль одно. Доступ к сайту я потерял очень давно. У fatal.ru были сбои, и они сменили пароли. А новых я не дождался.
В общем то был мой первый опыт в создании сайтов. Теперь заканчиваем с воспоминаниями, и я расскажу как именно я изучил PHP дальше и что могу посоветовать тем, кто собирается его изучать.
Изучал я в основном по форумам, задавал вопросы – мне отвечали, читал статьи, экспериментировал. Многое, как я вспоминаю не получалось, но я не сдавался и продолжал изучать PHP, потому что было огромное желание и энтузиазм. Не буду советовать какую-нибудь книгу, мне кажется учить php по книге – забивать мозг лишними данными. Нужно просто практиковаться и нужные знания сами накопятся, а книги читать уже имея какой-либо опыт в программировании. Советую начать с чего-либо простого, постепенно поднимая планку.
Перечислю то, что я считаю очень важным в современных условиях.
- Базы данных. Нужно хорошо знать что такое SQL, уметь вручную составлять SQL запросы, свободно работать с функциями php. mysql_query…
- XML. Сейчас где только не используется. Знать что это такое, как парсить и составлять – необычайно важно и пригодится на практике не раз.
- Работа с файлами. fopen, fwrite, fclose. Знать что такое бинарные и текстовые режимы.
- $_POST, $_GET, $_FILES – используется в каждой разработке. Так же важно знать что такое $_COOKIES.
- CURL. Эту библиотеку лично я знаю на зубок, потому как разрабатывал на ней сложнейшие C++ приложения. Для PHP функции те же. Знать обязательно!
- ООП. Советую программировать используя классы. Это очень облегчает разработки в крупных проектах. Но если скрипт не большой, лучше использовать обычное функциональное программирование.
Это все что я вспомнил, возможно есть еще какие-нибудь важные вещи, которые я упустил, если что дополню список.
А теперь я скажу, что практически все, что я перечислил выше я уже не использую. Почему? Потому, что серьезные программисты не используют велосипеды. Они используют фреймворки, которые существенно облегчают жизнь, делают разработки более надежными и быстрыми по времени. Я использую CodeIgniter.
Приведу простой пример: нужно записать файл на диск со строкой «Превед медвед!»
Чистый PHP:
if( $f = fopen('file.txt','w') ){
fwrite($f,'Превед медвед!');
fclose($f);
}
CodeIgniter:
write_file('file.txt','Превед медвед!');
Разницу улавливаете? Представьте как долго и нудно создавать файлы средствами PHP. Я не люблю рутинную работу, потому что она сбивает с основной мысли. Базы данных вообще что-то нечто. на PHP вы потратите раз в 5 больше времени на создание и отправку запроса, чем это сделает CodeIgniter.
Но перед тем, как перейти к фреймворку совершенно необходимо иметь опыт в «чистом» PHP.
Удобство программирования
Важно так же создать себе хорошие условия для работы. Не люблю людей, которые хвастаются, что они программируют в редакторе FAR или в обычном блокноте. Я таких людей не воспринимаю как хороших программистов. Это как минимум непрофессионально.
Я перепробовал кучу IDE (Нашими словами – редактор кода). Остановился на Eclipse PDT. У него хороший редактор проектов, если автокомплит кода (PHP, javascript, css) и много других полезных вещей.
Так же советую владеть техникой CSS, знать теги html, JavaScript и JQuery. Причем начистом JavaScript я никогда не писал. Это глупо и непрофессионально, используйте фреймворк jQuery.


Хорошая статья, сам как раз активно вникаю в php. Было бы здорово, если бы Вы продолжили серию статей на эту тематику, для начинающих.
можно спросить – почему???
1. Кросбраузерность, не нужно анализировать User-Agent, jQuery сам все анализирует, более того там поведенческий фактор.
2. Маленький, удобный код, богатый функционал.
3. Куча плагинов, не нужно писать самому велосипеды.
4. Быстрая разработка приложений.
Не знаю готов ли я к этому. Подумаю…
Добавлю простой пример в защиту использования фреймворка, а не чистого JavaScript.
Телеканал «Интер» все знают что на Украине живет?
Вот их сайт http://podrobnosti.ua/
Его недавно обновили, до этого было устаревшее говно. Загляните внутрь, они вовсю используют jQuery.
dell.com, google.com, mozilla.org, digg.com, wordpress.org… все они используют этот фреймворк. Писать на чистом JavaScript можно, так же как и программы полноценные на ассемблере. Но профи предпочитают фреймворки, не просто же это дань моде?
Сколько может сделать простой комментарий…..
)
Мне постоянно не хватает умений программировать на PHP. Если с CSS и HTML я дружу очень, в jQuery (обожаю его =) более-менее разбираюсь, то в PHP практически не бум-бум. И не могу найти для себя способ, чтобы начать его эффективно изучать (может слабо к этому стремлюсь?).
Если ты так расхваливаешь фреймворки, то почему сейчас написано миллиарды страниц и сотни террабайт обучающего текста по простому PHP(причем, не только в онлайне)?
И второе, я вот, например, не понял – по какому принципу работают фреймворки. Может и правда продолжишь статьи для новичков?
Я конечно обладаю знаниями, чтобы можно было ими делится, но написать что-то лучшее чем официальная справка на русском? Хм… не думаю что имеет смысл.
Я бы вот как поступил:
1. Установить денвер, создать локальный сайт, разместить на нем index.php
2. В index.php потренироваться с выводом(см. echo, print_r), работой с файлами, строками.
3. Подключить mysql (в поставке денвера он есть), поиграться с ним
4. Поработать с CURL
Елки палки, забыл про регулярки. Регулярные выражения так же используются повседневно.
Рекомендую статьи новичкам, я сам висел и вишу на этом сайте:
http://phpclub.ru/detail/
Ну напиши в посте, мы почитаем. Очень интересно.
«серьезные программисты не используют велосипеды», я – программист, тем не менее использую велосипед для разных поездок.
Мораль: Не знаешь исконного смысла фразы – не употребляй её.
)
А, вообще, улыбнуло.
Впринципе, полностью согласен с Вами насчёт фреймворков. Ибо лучше бросить все силы на основной участок кода, нежели лопатить код, который ты уже миллион раз лопатил, и в миллион первый будешь, а вместо этого использовать фреймворк и отделаться одной простой строчкой
(Нечаяно нажал на кнопку отправить в предыдущем посте
)
… строчкой кода. Думаю, это гораздо удобнее. Меня даже иногда раздражает писать по сто раз одно и то-же.
Женя, для того кто только начал изучать пхп ваш «простой пример» будет намного полезней чем использование write_file(‘file.txt’,'Превед медвед!’);
Не зная основ в изучении пхп далеко не уйдешь.
«Но перед тем, как перейти к фреймворку совершенно необходимо иметь опыт в “чистом” PHP.»
Я подумал и решил, что сделаю цикл статей для тех кто хочет научится программировать в PHP.
Отличатся будет от множества подобных учебников практическими примерами.
Например можно рассказать как работает CURL на примере входа в Sape-аккаунт и выпарсивания оттуда баланса и т.д.
читаю не внимательно
Спасибо за статью! Продолжай писать. Буду с удовольствием читать.
Очень хочу научиться на php программировать. Никак не подступлюсь.
Может ты пинка дашь
Я считаю, что учиться надо именно с «Hello Word» и самых основ С++
просто нас в учебном заведении очень сильно пинали по этому поводу, я пол года не могу понять нафига мы руками пишем каркас окна в Visual C++, кога это делается нажатием одной кнопки в борланде.
PHP по сути, тот-же С++, только со своими особенностями. Жень, я в любом случае считаю что начинать надо именно с самого низа, чтобы понимать чем отличается printf от echo.
Все фреймворки надо изучать только после ручного рукоблудства и понимания всей логики. К ООП также надо переходить не рано, чтобы почувствовать все прелести этих вещей!
Сайт о asm, ностальгия… Спасибо.
Вспомнил, свои похожие работы того времени.
вспоминаю, как сам был в восторге от того, что использую GET и не нужно создавать ещё страницы.
Считаю плюсом(наверно, потому, что сам не сохранил свои старые работы) то, что потерялись пароли от сайта, он остался таким как был(музейный экспонат), со своими задумками <!– [ Инструменты ] –>, которые так и не осуществились.
спасибо.
Помню как я начинал изучать пхп+мускул. Так и забросил его на полпути, а вот сечас чешу голову и думаю что зря я тогда забросил это дело.
я помню как начинал изучать basic
)) как С изучал тоже помню….вообще почти всегда, как не смешно, начинал с уровня hello world.
а jquery реально сильная штука, познакомился с ней когда искал что-то для написания GUI для своей CMS, нашел ExtJS, попробовал не понравилось, потом случайно наткнулся на jquery и стал изучать, сперва, конечно было ОЧЕНЬ непривычно, зато сейчас использую вдоль и поперек. Очень полезная и незаменимая вещь, я вспоминаю времена программирования на чистом JS как ужасный сон. Простое аяксовое дерево на jquery и на чистом JS – это разница в килобайты и в многие часы.
и то уверен, что не освоил JQuery еще на 100%, т.к. очень гибкая штука.
согласен, что лучшего стимула к изучению, чем необходимость просто нет =) Необходимость, в смысле, что есть задачи, идеи, нужно реализовывать. С таким подходом не только опыт преобретается, но и поддерживается желание продолжать дальше.
А вот книгу когда читаешь, если нет задачи, то вроде бы и понимаешь что и как, возможно смутно представляешь, где применить, но реально оно слабо откладывается.
Когда же есть идея, открываешь литературу, находишь нечто похожее и начинаешь эксперементировать. И доходят до тебя как тонкости использования изучаемого подхода, так и возможность его применения в твоей задаче. Не подошло оно, ну и ладно, зато может пригодиться в будущем. А может и не пригодиться и будешь знать, что лезть туда не надо =)
Начальные всякие интересные статьи тоже очень нужны. Можно много знать, но не представлять, как это применить. А на чужом коде и чужих примерах … там много интересных вещей…
Ну а дальше, когда опыта прилично, идеи тоже не покидают =)
ЗЫ что-то я загнул. Наверно крепкого чая за день перепил о_0