¿Cómo hago un sitio web grande con PHP como backend? (sin ningún marco)

No crea un sitio web grande con PHP como backend. PHP es lento, ineficiente, no escala bien y carece de una estructura forzada en el código. Termina siendo una mezcolanza.

Alguien tuvo que venir y decir, entonces ¿por qué Facebook usa PHP? Aquí está mi respuesta de los comentarios:

¿Por qué Facebook no ha abandonado PHP? ZDNet

HipHop para PHP
HipHop para PHP: muévete rápido
Comprenda que debido a las limitaciones de PHP, Facebook tuvo que gastar tiempo y recursos inmensos en desarrollar sus propios motores de ejecución (compiladores, intérpretes, depuradores). Y suponiendo que tenga un equipo pequeño para empezar, no podrá ahorrar estos recursos. HipHop es la única razón por la que Facebook todavía puede usar PHP.

¿Por qué Facebook no puede dejar de usar PHP? – Como sugieren algunas de estas respuestas, cambie de PHP antes de que sea demasiado tarde. PHP no es un lenguaje bien diseñado, es solo un lenguaje fácil de aprender (y fácil de confundir).

¿Por qué Facebook no ha migrado fuera de PHP?

¿Por qué los desarrolladores de Facebook y Zynga usan PHP?

¿Por qué Quora eligió Python para su desarrollo? ¿Qué desafíos tecnológicos enfrentaron los fundadores antes de decidirse por Python en lugar de PHP?

¿Cuáles son los horrores de PHP?

Lo siento, ¿diseñar un backend para un gran proyecto? seguramente va a tener muchos archivos. pero tener muchos archivos significa que puede estar siguiendo varios principios de diseño que incluyen la disección de la solución al problema en cuestión para hacer que toda la aplicación sea manejable. entonces sí, tendrías muchos archivos. El problema es no tener muchos archivos, el problema es buscar un patrón que haga que toda la aplicación sea fácilmente manejable y escalable. Aunque la gente diría que PHP no es la herramienta adecuada para este tipo de cosas, pero si se usa bien, PHP puede hacer mucho más. sin embargo, si desea ahorrar tiempo, le recomiendo que use un marco de trabajo o marco de CMS y se centre más en el diseño y el front-end.

Como muchos han mencionado, debe buscar en los marcos PHP populares porque lo ayudarán a mantener su proyecto más organizado de lo que probablemente se sienta inspirado a hacer por su cuenta.

Una vez que tenga mucha experiencia en la construcción de aplicaciones a mayor escala, estará en una mejor posición para diseñar su propio marco si decide que nada por ahí satisface sus necesidades exactas.

Puede evitar ese consejo y referirse a su propia solución como cualquier cosa menos un “marco”, pero las convenciones que diseñe terminarán siendo exactamente eso. Tendrá un marco de una forma u otra, o su proyecto será imposible de mantener.

Por mi parte, ingenuamente comencé lo que se convirtió en un gran proyecto PHP empresarial sin un marco explícito en 2002. Terminé incorporando Zend Framework como andamiaje, pero sentí que gran parte estaba demasiado hinchado para mis necesidades.

Pasé un año estudiando frameworks como Tapestry / Hibernate en Java Server Pages, Django en Python, Eclipse RCP en Java, Zend Framework en PHP, etc.

En 2008 terminé reescribiendo completamente mi proyecto desde cero y creé mi propio marco subyacente (completamente separado de la aplicación) basado en las necesidades específicas de mi proyecto. En ese momento, sabía exactamente lo que estaba haciendo y por qué lo hacía porque había pasado 6 años trabajando con el código todos los días. Aprendí por haber jodido mucho. Los mejores marcos condensan ese mismo tipo de aprendizaje, y usted se beneficiará de ello incluso si no comprende cuán lejos podría haberse desviado sin orientación.

Ahora son 6 años más tarde y llevo 12 años trabajando en el mismo proyecto PHP. He introducido alrededor de 1,000 mejoras por año a partir de los comentarios de la comunidad. Si bien eso suena como una pesadilla de arrastre de características, la mayoría de esos cambios en realidad limpian características dispares y redundantes y reducen la base de código. Refactorizo ​​religiosamente, y el proyecto está más organizado hoy que nunca.

No podría desarrollarme con esa consistencia y velocidad sin una sólida comprensión de los marcos. Es por eso que me considero más un arquitecto de software que un desarrollador típico.

Volviendo a los detalles específicos de su pregunta, el problema no es tener demasiados archivos de código fuente en el back-end. Generalmente, el sistema operativo los almacenará en la memoria caché y los guardará sin memoria; y también es probable que residan en un caché de código de operación PHP. No importa si tiene 1000 archivos si la mayoría no se utilizan en la misma solicitud. De hecho, he encontrado que es mucho más rápido tener un montón de archivos pequeños que unos cuantos más de 3000 líneas.

Lo que desea evitar es que los usuarios finales tengan acceso directo a demasiados archivos a través de URL. Debe buscar en el patrón de diseño Modelo-Vista-Controlador. En mi aplicación, solo hay dos archivos PHP accesibles para el navegador (index.php y ajax.php). Utilizo rutas virtuales como ‘/ setup’ o ‘/ search’ que se enrutan a un código diferente por el marco de back-end. Eso proporciona mucha más seguridad y organización que permitir el acceso directo a páginas como setup.php o search.php.

Con una buena comprensión de su IDE (Eclipse PDT en mi caso), podrá navegar por esos archivos sin muchos problemas. La mayoría de las veces solo estás abriendo archivos con algunas letras de su nombre. Usted sabe a dónde pertenecen las cosas porque su marco lo ha animado a organizarlas de manera consistente (API, recursos, plantillas, etc.).

La primera opción es no usar PHP, sino ir con python o ruby.

Si todavía te quedas con PHP, la mejor opción es ir con frameworks,
Ej: CodeIgniter, Laravel.

La última opción es construir su propio marco php MVC (patrón de diseño).

Refiera estos,

Comience su propio marco MVC con PHP

Tutorial completo de PHP MVC. Crea tu propio framework PHP MVC

Para efectos especiales, deberías utilizar las bibliotecas javascript.

Las 9 mejores bibliotecas de animación para usar en 2016

15 mejores bibliotecas de animación JavaScript para desarrolladores | Code Geekz

No deberías querer tener nada en el mismo idioma. Debe tratar con HTML, JS, jQuery, etc., y tiene el back-end, que consiste en sus controladores y modelos.
Desarrollo de sitios web, programación PHP, diseñador web

Te recomendaría usar un marco como en CMS (joomla, dolphin)
o de lo contrario terminas escribiendo mucho código de placa de caldera que podría evitarse

More Interesting

¿Cuáles son algunos de los mejores sitios web en línea de la India en los que puedo comprar componentes electrónicos?

¿Cuál es la mejor manera de construir un sitio web básico para una empresa?

¿Puedes clasificar los sitios de Chicago en orden?

¿Por qué mi sitio web se queda sin ancho de banda?

¿Puedo cargar libros electrónicos descargados (PDF) en mi sitio web para que la gente los descargue de forma gratuita?

¿Cómo diseñar un sitio web de noticias? ¿Qué CMS debo usar para diseñar el sitio web y por qué?

¿Cuánto dinero y tiempo se necesita para crear un sitio web para bloguear?

¿Cuáles son las cosas más importantes que un fundador de startup debe considerar para los términos de servicio, la política legal o de privacidad y las preguntas frecuentes del sitio web?

Cómo hacer un sitio web viral exitoso como Buzzfeed / Viralnova / Boredpanda

Dado que los sitios web de torrent están bloqueados, ¿hay alguna otra forma de revivir el mundo de torrent? ¿Hay otros sitios web similares?

¿Cuál es el mejor sitio web para descargar software gratuito y bueno para una computadora?

¿Dónde puedo encontrar a alguien que me ayude a construir una idea de sitio web personalizado? ¿Cómo puedo protegerme de que roben la idea?

¿Cuál es la página web sin cambios más antigua? ¿Es posible encontrarlo? ¿Se eliminan las páginas web antiguas?

¿Puedo publicar mis poemas con mi propio sitio web?

¿Es posible que mi código haya producido respuestas incorrectas para algunos datos ingresados, pero los sitios web de competencia de programación (como CodeChef, TopCoder, HackerRank) no pueden detectarlos y aceptar mi código?