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






MediaWiki - одно из крупнейших общедоступных PHP-приложений с очень красивым кодом. . Я знаю несколько более крупных, но они совершенно ужасны, и вы ничему не научитесь, прочитав их.
Есть лоты сложных приложений OpenSource php. Например, Drupal CMS, которую можно рассматривать как самостоятельную платформу для разработки других веб-сайтов.
Вы можете просмотреть исходный код в Интернете: http://cvs.drupal.org/viewvc.py/drupal/drupal/
Я думаю, что magento намного лучше с точки зрения отличного кода и мощности, большой проект!
Я бы посмотрел на некоторые из хорошо известных веб-приложений с открытым исходным кодом, которые используют PHP, чтобы получить хорошее представление о том, чего можно достичь и как PHP используется в каждом из них. Преимущество состоит в том, что, поскольку все они имеют открытый исходный код, вы можете посмотреть на код PHP, чтобы увидеть, как были реализованы различные функции.
Вот несколько хороших примеров:
Также посмотрите на некоторые из популярных фреймворков, чтобы узнать, какие функции они предлагают (это должно дать вам хорошее представление о том, для каких типов вещей чаще всего используется PHP):
Ух, PHP-BB не должен быть в этом списке. Никогда раньше я не видел такого количества уязвимостей безопасности, упакованных в такие несколько строк непонятного спагетти-кода.
ROFL, это ТАКАЯ правда, у меня есть приложение с 3000+, и у меня есть все, что вы можете себе представить, без проблем.
Возможно, переместите PHPBB в положение «Хорошо смотреть, чтобы вы знали, чего НЕ делать»
Ха-ха, полезно знать - я добавлю к этому примечание.
Я также скажу, что код Wordpress не слишком крут. Я бы сказал лучше взглянуть на Zend Framework.
imho, zend framework - единственный в этом списке, который использует проверенные методы / шаблоны кодирования, доступные в последних версиях php. Все остальные (насколько мне известно) поддерживают php4, что ограничивает их способность использовать достойные функции объектно-ориентированного программирования. Если вы переходите из .net, java или c и смотрите код wordpress, вы можете спрыгнуть с моста.
Wordpress должен быть самым неэффективным способом создания страницы. В основном запускается дважды. Во-первых, он включает в себя все, и каждый плагин, который вы активировали (на каждой странице), регистрирует крючок действия, к которому они пытаются подключиться (отображение содержимого сообщения и т. д.), Затем wordpress запускает хуки действий. Практически все, что находится внутри всей папки include, включается каждый раз.
@Wilco, привет, ты не упомянул Kickass Звери Magento и Laravel?
+1 для Wilco
У меня есть программное обеспечение, которое я использую для некоторых из моих клиентов, это CMS, Blog, eCommerce beast, база кода ОГРОМНАЯ, но все прекрасно взаимодействуют друг с другом.
В моей повседневной работе мы запускаем все на PHP - наш интерфейсный веб-сайт, наш серверный интерфейс для агентов и сотрудников, инвентарь, интерфейсы управления сервером и т. д. Это все, от элегантных новых приложений Zend Framework с поддержкой AJAX до устаревшего кода, который у нас есть еще не портировал. Вдобавок мы используем такие вещи, как Богомол (отслеживание ошибок, встроенное в PHP), Mediawiki и phpMyAdmin.
Единственное, что не является PHP, - это приложения от поставщиков, потому что они любят Java. Одно приложение ASP.NET, которое у нас есть, было фактически оставлено поставщиком во время проекта (на самом деле это не удар по ASP.NET, это приложение было просто идеальным определением безудержного проекта и не удалось бы, независимо от того, на каком языке оно было написано. ).
Со зрелыми фреймворками, такими как Zend Framework, CodeIgnitor и CakePHP, возможно создание практически всего на PHP.
Самая большая проблема при разработке крупномасштабных программ, безусловно, заключается в том, чтобы поддерживать их в долгосрочной перспективе. Изначально программа начинается с идеальных методов и идей, но сохранить целостность нетронутой, особенно с течением времени, на мой взгляд, чаще всего не удается.
Кроме того, ваш враг - ползучесть прицела. Вы ДОЛЖНЫ управлять этим как можно скорее.
Что касается крупномасштабных программ, компания, в которой я работаю, постоянно разрабатывает несколько внутренних программ. Одним из примеров является наш собственный движок веб-сайта. Это очень большая кодовая база, которая включает в себя дюжину модулей (управление пользователями, систему опросов, блоги, пользовательские галереи и т. д.), Что позволяет нам быстро создавать сайты наших клиентов.
Мы также разрабатываем собственную внутреннюю программу управления проектами для управления работой наших клиентов.
Вы определенно должны думать о масштабе в долгосрочной перспективе. Почти в каждом проекте, над которым я работал, есть элемент разрешения / группы для вовлеченных пользователей. Возможно, вы захотите начать думать о возможностях и проблемах, связанных с этим, и перейти к более сложным функциям.
Моя компания работает над образовательным программным обеспечением. Недавно мы начали предоставлять веб-контент, включая видео и аудио, при этом серверная часть полностью написана на PHP с использованием MySQL. У нас есть два основных приложения, одно из которых находится на наших серверах, а другое доставляется клиенту. Один синхронизирует ~ 42000 строк кода (используя физическое количество строк), а другой - ~ 68000 строк.
Мы широко используем ГРУША, и недавно начатый проект использует Zend Framework.
Насколько мучительно было переходить с ООП PHP на Zend?
Получите CodeIgniter и перестройте Amazon или Ebay. Если вы мечтаете об этом, вы можете создать его на PHP, но, возможно, вы не сможете его поддерживать, потому что очень легко создать плохой код, который работает. PHP.net - ваш друг. Какой бы фреймворк вы ни использовали, обязательно прочтите Руководство пользователя и позвольте ему направлять вас.
Я не могу поверить, что никто еще не упомянул шаблон MVC. ИМО, это одна из лучших вещей, которые вы можете использовать для поддержки больших баз кода.
В нашей компании мы используем PHP. (Мы изучаем язык онлайн: http://www.livemocha.com. Вам стоит заглянуть на сайт. Да, это своего рода бессовестная затычка, но она также актуальна. :-))
Я не могу назвать вам точное количество пользователей, но недавно мы выпустили пресс-релиз, посвященный достижению отметки в 3 миллиона. Это довольно большие масштабы для веб-приложений.
Мы строим на платформе CakePHP, которая основана на архитектуре MVC ... по крайней мере, теоретически. На практике они автоматически генерируют определенные методы для моделей, которые, как правило, имеют результат проталкивания некоторых фрагментов кода модели (кэширование, решение, какую БД использовать) в контроллеры. У них также есть несколько проблем с локализацией в 1.2, которые заставляют меня думать, что эта часть фреймворка еще не достигла зрелости. Тем не менее, я считаю, что с CakePHP довольно удобно работать в целом, и вам стоит хотя бы взглянуть на него, если вы планируете реализовать крупномасштабное веб-приложение на PHP. Также имеется отличная документация (google для "CakePHP bakery").
Создано с помощью говорит, что это было сделано в WurdPress. builtwith.com/livemocha.com
Это вполне возможно - я знаю, что они прошли серьезную реконструкцию (продолжавшуюся несколько лет) примерно через 3 года после того, как я опубликовал это сообщение. С тех пор они были куплены Rosetta Stone, так что, возможно, RS полностью закрыла сайт и заменила его рекламной страницей. (Не знаю - я там больше не работаю.)
База кода MediaWiki в порядке, пока вы не решите ее расширить. Я проводил с ней исследования НЛП, поэтому полагаю, что моя точка зрения искажена сложностью моей проблемы.