Сколько сайтов написано на php
Для чего используют PHP и почему его ненавидят
Для чего нужен PHP: какие возможности он дает разработчикам, что можно реализовать с его помощью и в чем главная боль PHP-разработчиков
PHP — один из самых распространенных языков web-разработки. Он применяется для создания сайтов и web-приложений любой сложности. от лендингов и блогов до интернет-магазинов и браузерных игр.
Его преимущества — в широких возможностях и защищенности благодаря закрытому исходному коду. К минусам можно отнести то, что без сервера с интерпретатором код работать не будет (исправлено в новых версиях языка).
Какие задачи можно решить на PHP
В PHP поддерживаются применение функций, математические вычисления, работа с переменными (как в примере выше) и массивами, прописывание условий «если — то», создание объектов и многое другое. Чаще всего это используется:
Теперь обо всем этом по порядку.
Формы
Если вы знакомы с html, то знаете, что с его помощью нельзя просто так получить информацию, введенную пользователем. То есть вы можете создать красивую форму, но без PHP или другого подобного языка все данные просто исчезнут, когда он нажмет кнопку «Отправить».
Для начала создается форма подобного вида:
На PHP вполне можно создать файловый менеджер или текстовый редактор.
Изображения
Используется, например, для реализации капчи, когда нужно, чтобы каждый раз выводилось уникальное число. Для этого создается файл captcha.php, а потом он указывается как ссылка на изображение.
В самом этом файле генерируется случайное число, а потом выводится на изображение. Или можно обрезать картинку, загруженную пользователем. Например, если необходимо подогнать все аватарки под один размер.
Если вы собираетесь использовать этот код, добавьте масштабирование и поработайте над соотношением сторон.
Парсинг
Парсинг — это сбор информации с других сайтов. Например, вы часто могли видеть поиск по сайту, который реализован с помощью Google или «Яндекса».
Так это реализуется с помощью библиотеки PHP Simple HTML DOM Parser. Но, как вы могли заметить, мы получили все ссылки на странице — то есть не только ведущие на найденные сайты, но и ведущие на другие проекты «Яндекса».
Почему программисты ненавидят PHP
Если вы были хоть на одном форуме для программистов, то могли увидеть множество негативных высказываний.
Одна из причин ненависти к PHP — переменные. Если в других языках их нужно объявить заранее, да еще и указав тип, то в PHP можно просто поставить знак «$» в любой части кода.
С одной стороны, это упрощает жизнь. С другой — в переменную можно поместить что угодно и когда угодно. У них нет какого-то типа, а это значит, что число запросто может стать строкой. Если вы этого не хотели, то вместо вычислений вы получите ошибку. Это и дар, и проклятие одновременно.
Следующая причина — смешанный код. PHP приходится использовать в файлах с версткой HTML. Это затрудняет работу с кодом, потому что не всегда можно легко найти нужный фрагмент или понять, где ты находишься сейчас.
Другие языки, вроде JavaScript, можно выносить в отдельный файл и оттуда взаимодействовать со страницей. В PHP же это будет выглядеть так:
То есть исходный код является смесью двух языков. Хотя этого можно избежать, если не писать код в этом же файле, а подключать другие, как это было в примере с подключением шапки и футера.
Еще PHP достаточно прост в изучении, поэтому на нем создано около 83% сайтов по всему интернету. Его простота стала причиной появления миллионов сайтов с кривым кодом. Поэтому можно сказать, что ненависть вызвана неопытными разработчиками.
Новички любят всё усложнять и пишут так:
Хотя можно написать так:
И хотя таких примеров много и в других языках, именно простота PHP послужила благоприятной средой для появления всего этого добра. Если на C# придется постараться, чтобы заставить кривой код работать, то PHP постарается за вас.
Также можно сказать, что определенная доля предвзятости будет всегда. В новых версиях языка исправлено очень много ошибок, но программисты все равно продолжают смеяться над ними, потому что сложилась такая традиция.
У PHP на самом деле много недостатков:
Многие ошибки исправляются, и с каждой версией их становится меньше, хотя PHP считают «мертвым» языком уже больше 20 лет.
Заключение
PHP — отличный язык, с помощью которого можно реализовать любой функционал. Хоть его и не любят многие разработчики, со своей задачей он справляется отлично. И неразумно игнорировать его просто потому, что так делают многие, — нужно просто подстроиться под несколько недостатков, чтобы воспользоваться огромным количеством преимуществ.
Пишет о программировании, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.
PHP гораздо лучше, чем вы думаете
Последнее время PHP гнобят все, кому не лень, даже довольно-таки разумные люди. Когда Jeff Atwood создал свой очередной пост, направленный против PHP, это заставило меня задуматься о хороших сторонах этого языка.
Самая главная проблема всех этих статей в том, что люди, которые их пишут, застряли в старых временах PHP.
Либо это их не волнует, либо они не хотят признавать, но PHP эволюционирует очень быстрыми темпами, и как язык, и как сообщество.
Более того, PHP развивается гораздо быстрее, чем какой бы то ни было другой язык или платформа. Конечно, так было не всегда, но последние 5 лет были воистину потрясающими для PHP…
Прежде чем начинать говорить о достижениях PHP сообщества за последнее время, давайте посмотрим на некоторые интересные цифры: PHP используется как основной язык на 77,9% среди всех сайтов, где язык платформы известен. WordPress используется в 16,6% среди всех сайтов мира. Если вы посмотрите на топ 3 CMS, WordPress на первом месте с 54,3%, Joomla на втором с 9,2% и Drupal на третьем с 6,8%. Топ 3 продукта, все написаны на PHP.
Это не спроста: в PHP явно что-то сделано верно, не находите?
Давайте я вам рассскажу маленький секрет успеха PHP: не смотря на все изменения за последние годы, PHP все еще является наипростейшим языком для изучения не-техническими людьми; PHP позволяет создавать динамичные вебсайты быстрее, чем любая другая технология, позволяет поднимать сайты дешево и без заморочек. Вполне возможно, что PHP не самый лучший язык в мире с точки зрения проектирования, но он позволяет быстро достигать целей, и с этим не поспоришь.
PHP: Язык
В PHP 5.0 (вышедшем в 2004) ввели стабильную объектную модель… стоп стоп. Я же говорю о чем-то, что было почти 8 лет назад. Давайте-ка вернемся в настоящее.
В современном релизе PHP, 5.4, есть все плюшки, о которых вы могли бы мечтать, пользуясь современным веб языком: да, PHP поддерживает пространства имен; да, PHP поддерживает замыкания; да, PHP поддерживает типажи (traits).
На это ушло время, но PHP 5.4 включает в себя немного синтаксического сахара, который делает процесс разработки лучше: да, PHP поддерживает [] для обозначения массива; да, PHP поддерживает вызов метода на созданном объекте ((new Foo())->bar()); да, PHP поддерживает вызов элемента массива из произвольного выражения ($foo->bar()[1]).
В PHP учатся на своих ошибках: register_globals и magic_quotes убраны с потрохами.
И напоследок, в PHP встроен веб-сервер, упрощающий локальное тестирование… и он запускается в считанные миллисекунды.
Задача на будущее: как «обновить» все гайды по PHP в интернете? Какой лучший способ поддержки вебсокетов в PHP проекте?
PHP: Экосистема
Хороший язык — это круто, но отличная экосистема — это еще круче. И экосистема PHP очень сильно развилась за последние годы.
Я не буду вдаваться в подробности этого пункта. Git повсюду, и в мир PHP он влился довольно быстро. Практически все основные PHP библиотеки, фреймворки и продукты используют Git, включая сам PHP.
Composer
Два года назад мне очень хотелось избавиться от страшного PEAR-хака, который я использовал в symfony 1 для поддержки плагинов. Мне хотелось заменить его на что-то, что могло управлять зависимостями на уровне проекта, а не иметь глобальный установщик как PEAR. Управление зависимостями — не простая задача, поэтому я попытался найти наилучший алгоритм для её решения. Я просмотрел все: от Perl до Ruby, от Debian до RedHat. Ни один не был удовлетворительным — кругом самопальные решения, которые просто работают… эмпирически. А потом я наткнулся на ZYpp. Это было оно. В ZYpp используется SAT анализатор для управления зависимостями. И теперь, благодаря колоссальной работе Nils Adermann и Jordi Boggiano, у PHP есть один из лучших менеджеров зависимостей, Composer.
Да, у PHP сейчас лучший менеджер зависимостей из всех языков.
И благодаря Git, Composer и встроенному серверу PHP скачивать, устанавливать и тестировать PHP проекты еще не было так просто!
Хотите попробовать Symfony (используя PHP 5.4)?
Хотите попробовать Silex?
Не слышали о Composer? А он того стоит. Загляните на Packagist — основной репозиторий для Composer: в нем уже находится более 1900 пакетов и они были установлены более миллиона раз меньше чем за 3 месяца.
Задача на будущее: внедрить Composer в следующую версию PHP?
Сотрудничество
Сотрудничество внутри сообщества — самый важный пункт в этом посте, то, чем я больше всего горжусь. Мы начинам видеть все больше и больше сотрудничества между различными PHP проектами, даже между очень большими, такими, которым, казалось бы, и не надо ни с кем считаться.
phpBB, Drupal, ez Publish, Symfony, phpDoc, PHPUnit, Behat, Zikula, Propel, Doctrine, Midgard и многие другие имеют совместный код. Да, они «конкуренты», но они все поняли что интероперабельность — это круто. И Composer в этом большой помощник.
Задача на будущее: убедить еще больше проектов влиться в тренд?
Напоследок:
PHP, возможно, не лучший язык в мире, и я далеко не первый, кто пытается говорить о его плюсах, но PHP — это лучшая веб платформа… и точка.
Что такое PHP и почему его все ненавидят
Несмотря на то, что 83% сайтов в интернете работают на PHP.
История языка
Изначально PHP расшифровывался как Personal Home Page Tools — инструменты для создания персональных страниц. Дело в том, что раньше, чтобы сделать функциональный сайт, чаще всего использовали C, Perl и CGI-скрипты. Звучит сложно, на деле — тоже сложно. Единственным способом сделать что-то своё и не изучать при этом три тома по программированию был PHP.
Например, можно сделать так:
Привет! А вы знаете, что
В результате на странице получится строчка: «Привет! А вы знаете, что этот код написан на PHP?»
Ещё можно создавать целые PHP-файлы и писать весь код там, а потом просто подключать эти файлы в нужный момент. Получается, что с PHP можно работать в двух режимах: писать код прямо в коде страницы или выносить всё в отдельные файлы.
PHP — это просто
Именно простота этого языка принесла ему дурную славу: слишком много появилось плохого кода, который на первый взгляд работал хорошо. Посмотрите сами: начать писать на PHP действительно просто.
Комментарии и точка с запятой. Комментарии можно ставить в любом месте — достаточно написать два слеша подряд. А точка с запятой ставится после каждой команды — точно так же, как в С, Pascal, JavaScript и ещё в сотнях других языков.
Объявление переменных. Чтобы объявить переменную, нужно просто поставить знак доллара, после него написать название переменной и присвоить ей какое-то значение.
Вывод на экран. В HTML-коде достаточно вставить команду echo, которая помещает текст в то место, откуда вызвали команду. Например, этот код покажет заголовок первого уровня с текстом «Заголовок, собранный на PHP»:
И этот код сделает то же самое:
Ещё в PHP есть классы и объекты, автоматическое приведение типов (хотя мало кто понимает, как оно там работает в сложных примерах) и множество встроенных функций, которые упрощают разработку и помогают быстро писать код. А самое главное — PHP сам заставляет работать любой код, если он хоть как-то написан по правилам языка. Даже если внутри будет полная чушь, но похожая на PHP-код — интерпретатор его старательно выполнит, и, скорее всего, многое из этого будет даже работать.
Для чего нужен PHP
Собирать страницы из модулей. Если помните, PHP-код можно встраивать в HTML-страницы, а можно сохранять как отдельные файлы. В этом случае мы получаем мини-модули, каждый из которых отвечает за что-то одно. Например, в одном мы пишем, как будет выглядеть шапка сайта, в другом — меню, третий файл будет отвечать за подвал, четвёртый — за блок с отзывами о товарах.
Если у нас интернет-магазин и на каждой странице товара нужно показать шапку сайта и подвал, можно каждый раз прописывать это вручную, а можно собрать на PHP. Для этого достаточно в теле страницы написать что-то такое:
PHP возьмёт файл header.php, в котором мы написали, как должна выглядеть шапка сайта, и поставит её в начало страницы. То же самое сделает и с подвалом — файлом footer.php, и так будет на каждой странице товара. Получается, что нам не нужно писать один и тот же код шапки и подвала на каждой странице, достаточно сделать это в одном месте, а потом подключать одной строчкой.
Создавать CMS и движки для сайтов. Такие модульные возможности PHP привели к тому, что большинство современных систем управления контентом на сайтах написаны на PHP. Смотрите сами:
Если вы на бесплатном хостинге используете какой-то инструмент для создания или поддержки сайта, скорее всего, он тоже будет написан на PHP.
Работать с формами и данными на странице. HTML плохо умеет работать с формами и отправлять куда-то данные, которые вы вводите в поля регистрации. PHP справляется с этим гораздо лучше: вы говорите, из какого поля что нужно взять и по какому адресу отправить, а всё остальное интерпретатор делает за вас.
Запоминать пользователей и делать формы авторизации. Если вам нужно быстро написать свою форму регистрации на сайте или запоминать посетителей даже без регистрации, то PHP — самый простой вариант решения этой задачи. Единственное, что нужно знать — как работать с базами данных, где хранятся записи о пользователях, потому что PHP это тоже умеет.
Почему все ненавидят PHP
По старой памяти, когда ужасного кода было много. Простота вхождения в этот язык привела к тому, что невозможно было нормально поддерживать сайт, написанный кем-то на PHP. Этот язык позволял раньше (сейчас меньше, но тоже есть) много вольностей с типами данных, переменными, обращениями к базе данных, поэтому разобраться было почти нереально.
Кроме этого, раньше в PHP было много уязвимостей, через которые можно залезть в базы данных пользователей или что-то поломать на сайте. В новых версиях большинство дыр уже устранили, но тогда это стало реальной проблемой.
Смешанный код. Писать в одном файле на PHP и HTML можно, если у вас всего одна форма обратной связи. Но когда весь сложный код на PHP расползается по всей странице, то это сильно мешает разобраться, что же там происходит на самом деле.
Любые переменные в любом месте. Понадобилась новая переменная? Объявите её на любом участке кода и сразу берите в работу. Это удобно для первоначальной разработки, когда ты просто берёшь новую переменную там, где она понадобилась, и делаешь с ней что хочешь. Но когда проходит время или кто-то другой хочет разобраться в коде, то такой подход сильно затрудняет работу.
Например, можно написать так:
Когда новый программист захочет понять, за что отвечают переменные а и b, он найдёт место, где они объявляются, и посмотрит, какого они типа и для чего использовались вначале. Но разработчик мог в процессе передумать и начать использовать эти переменные для других целей с новыми типами данных. Чтобы это понять, нужно просмотреть весь код и разобраться в логике, а это долго и трудно.
Стоит ли учить PHP?
Зависит от задачи. Дело в том, что не менее 80% сайтов уже сейчас работают на PHP: это значит, что их нужно будет еще какое-то время поддерживать. Ещё лет 5–10 спрос на PHP точно будет.
Однозначно стоит учить PHP, если хотите работать с Вордпрессом, Друпалом, Джумлой и другими известными системами управления сайтами. Они написаны на PHP, и все надстройки и дополнения — тоже. Хороший разработчик WordPress сейчас на вес золота.
Будут ли веб-разработчики массово переходить на другие технологии — вопрос открытый. Сейчас, если вы покупаете виртуальный хостинг, вам сразу включают интерпретатор PHP, потому что все его используют. А другие технологии типа Python или Node.js — не включают, их нужно устанавливать отдельно.
Но ведь и веб — это не навсегда. Ещё лет 20, и понятие веб-сайта может безнадёжно устареть, потому что люди будут в приложениях, соцсетях или ещё где похуже.
Наверное, ответ на вопрос такой: если вам до 20 лет, то уже не надо учить PHP. А если ближе к 40–50 и вы хотите заниматься вебом — то определённо да.
Что дальше
В следующей серии попрактикуемся в PHP — напишем свой код для пользы дела или для развлечений.
Падение популярности PHP: не все так однозначно?
Привет, Хабр! Представляю вашему вниманию перевод статьи «PHP in decline: The rise and fall of a programming language» автора Сары Шлотхауэр (Sarah Schlothauer).
Когда-то PHP был одним из самых популярных языков программирования, однако на сегодняшний день он продолжает терять свою былую популярность. Это особенно заметно при его сравнении с Python, а также рядом других языков программирования. Индекс TIOBE за сентябрь 2019 года ясно указывает на то, что PHP вполне может вылететь из десятки наиболее востребованных языков программирования.
Пора ли заказывать по умершему панихиду? Или наш «феникс» еще будет летать?
PHP уверенно следует по траектории падения своего индекса TIOBE, заданной еще пять лет назад. В частности, показатели индекса TIOBE за сентябрь 2019 года говорят о том, что за последние 12 месяцев этот язык программирования опустился в списке на две позиции — с 7 на 9 место.
Ниже приведен скриншот индекса TIOBE Index за сентябрь 2019 (источник):
Что касается языков-«новичков», то в этом месяце под номером 11 в списке дебютирует Apache Groovy.
В прошлом году он занимал скромное 34-е место, поэтому его нынешняя позиция в списке является, несомненно, большим успехом. Groovy в некотором смысле похож на Java, что позволяет Java-разработчикам легко освоить этот язык и интегрировать его с Java/библиотеками сторонних разработчиков.
Причины снижения популярности PHP
На заре юности Интернета PHP был очень популярен. В 2004 году он даже стал языком года по версии индекса TIOBE (согласитесь, что сейчас об этих славных временах мало кто вспомнит).
Что же привело PHP к такому печальному финалу?
Собственно, процитируем непосредственно сам индекс TIOBE:
«До конца 2009 года все было отлично, но затем, за два года, этот язык программирования потерял половину своей доли рынка, которая снизилась с 10 до 5%. В 2014 произошло еще одно двукратное уменьшение сегмента рынка, на котором господствовал PHP — до 2,5%. Что же произошло с этим языком программирования? Недостатком PHP являлась его уязвимость в вопросах безопасности, которая была, в свою очередь, производной его простоты. При этом PHP мучительно долго боролся с этим недостатком. В частности, в 2014 году основной идеолог использования PHP — компания Facebook — запустила Hack, намереваясь заменить им PHP, так как последний не мог обеспечить должную масштабируемость. К тому же к этому времени в качестве универсальных языков веб-разработки начали использовать JavaScript, TypeScript и Python».
Взлеты и падения
Недавнее видео на Reddit от Global App Testing наглядно иллюстрирует историю расцвета и упадка различных языков программирования за последние 10 лет. На видео указаны самые популярные языки на StackOverflow с 2008 года. Посмотрите его — оно не столько информирует нас о сухих фактах и цифрах, сколько завораживает своей подачей графической информации.
На видео видно, о каком языке программирования было задано больше всего вопросов.
Вы удивитесь, но несколько раз за свою историю PHP был популярнее Java! Словно на ипподроме, кажется, что лошадка с кличкой PHP вот-вот станет первой. Однако примерно с сентября 2016 года нашего фаворита начинает обгонять Python, после чего PHP уже не суждено оправиться от полученной бреши в броне. История языка начинает плавно идти по наклонной.
Ну что, конец?
Перефразируя строки известной песни «Чайфа», «не спеши ты его хоронить». Да, PHP существенно потерял в популярности, но сообщество программистов на этом языке живет и здравствует.
Конференции по PHP проходят по всему миру. Только за последний год PHP стал центральной темой митапов и встреч программистов в Японии, Бразилии, Украине, Германии, Китае, США и на Тайване.
Кроме того, официальный Твиттер-аккаунт php.net в настоящий момент насчитывает 67.7 тысяч подписчиков. Кроме того, 5 сентября 2019 года вышел последний релиз языка PHP — версии 7.4. При этом Reddit-аккаунт PHP насчитывает 105 тысяч членов, активно обсуждающих соответствующие фреймворки, IDE, а также последние новости из мира PHP.
Не стоит также упускать из виду и другие показатели популярности PHP. Свежий отчет IEEE Spectrum зафиксировал 13-е место PHP в своем рейтинге, где «соседями» этого языка программирования стали Assembly (этажом ниже) и HTML/CSS (этажом выше).
Если вы все еще беспокоитесь о «здоровье» PHP, беспокоиться не о чем, потому что в рейтинге языков программирования RedMonk за июнь 2019 года PHP занимает 4 место!
Ниже приведен скриншот рейтинга языков программирования RedMonk Q3 2019 Programming Language Rankings (источник):
Этот рейтинг учитывает количество хранилищ GitHub, связанных с PHP. Другими словами, может быть, что PHP-программисты задают совсем немного вопросов на StackOverflow, но уж «кодят» они достаточно.
Да и вообще вы видели символ языка PHP? Лично ВЫ готовы похоронить эту милую зверюшку?
Сколько стоит сайт?
Допустим, нужно сделать сайт, в котором будет 3 страницы: Главная(информация о компании), Портфолио(каталог товаров), Контакты(Обратная связь)
Сколько будет стоить такой сайт(приблизительно +-) без дизайна(дизайн буду считать отдельно), если его сделать на:
1. PHP(codeigniter, zend framework или т.п.)?
3. Ruby(ruby on rails)?
И почему разработка на том или ином языке дороже или соответсвенно дешевле?
Спасибо за информацию.
Могу написать свое мнение на счет ценовой политики (просто просматривая заказы на feelance примерно прикинул цены). Чаще всего на этих 3х языках (примерно одинаковый функционал написанного) заказывают инет магазины. По ценам PHP — от 20к (с дизайном, без него 10-15 и срок написания магазина — 7-14 дней). Ruby(RoR) — от 30-35к (с дизайном, без него 25-30к). Заказ на сайты для питона видел раза 3 на фрилансе… и цены всегда были заоблачные для стандартных вообщем то функций (от 90к начиная).
По моему мнению цена формируется из предложения. PHP программистов на порядок больше чем RoR и Python. Поэтому, если принимать за среднюю цену кодинга моего примера — магазина около 25 тыс. рублей, то людей напишущих это на php найдется достаточное к-во, что бы «сбить» цену до 10-15 тыс и т.д.
Да и опять таки, как бы банально это не звучало, но спрос рождает предложение. На всех хостингах (бесплатные не рассматриваю в принципе) по дефолту есть поддержка php. Но где при этом есть возможность запускать те же ror приложения не в виде cgi скриптов? А какой процент ваших клиентов согласиться заплатить на VPN\root сервер для сайта визитки?
Мое ранжирование цен php>ruby>python.
Извините, много букв, но что то накипело очень.