¿Qué architecture debería usar para escribir mi primer sitio web dynamic en PHP?

Solo quiero construir mi primer sitio web dynamic. Quiero usar PHP, MYSQL, AJAX, HTML, CSS

Tengo algunas preguntas para principiantes:

  • ¿Deberían excluirse el encabezado y la barra de navegación en un encabezado.php e imprimirse con eco?

  • ¿Deben las tags de diseño en el eco en php (como: 1 Test test ) o solo devolver los datos?

  • ¿Hay un buen ejemplo para hacer sitios web dynamics?

Mi problema principal es que no sé cómo hacer una estructura clara. ¿Dónde hacer el diseño correcto (imprimir en el php?)

    Si es realmente su primer sitio web, realmente recomendaría no usar nada en términos de marcos. Esto le permite ganar tiempo para sentirse cómodo con HTML / CSS, SQL y PHP, sin sobrecargarlo con principios de nivel superior como MVC (modelo / vista / controlador) y otros. Me preocupa en gran medida que comenzar con un marco de trabajo de inmediato haga que la curva de aprendizaje sea pronunciada, y se salta cosas como sentirse cómodo con el lenguaje de progtwigción que utilizará.

    Eventualmente harás un lío con el camino, pero esto solo hará que aprecies más los marcos; A continuación, puede hacer la transición a utilizar un marco como CodeIgniter , Symfony o CakePHP (u otros, porque hay mucho más).

    Otros frameworks con los que realmente me gusta trabajar son Play! para Java y Rails para Ruby. Como dijiste que eres un principiante, podrías considerar esto también.

    Bueno, para responder todas tus preguntas a la vez. La única tecnología que necesitas es plantilla.

    La plantilla es una secuencia de comandos PHP típica, sin embargo, consiste principalmente en HTML puro, con algunos códigos PHP solo para mostrar datos generados dinámicamente.

    Crear una plantilla de sitio principal contiene encabezado y barra de navegación y pie de página todo lo demás, excluyendo el contenido de la página real.

    Luego, cree páginas separadas (“secciones” de su sitio: news.php, links.php, etc.). Pero convierta cada página de 2 partes: parte de los datos y parte de los datos que se muestran.
    Al obtener datos, no se debe imprimir un solo caracter.
    Si ocurrieron algunos errores, muestre una página de error.
    Una vez que obtenga todos sus datos sin errores, es hora de incluir una plantilla principal.

    Un script típico puede parecerse

      

    donde main.tpl.php es la plantilla principal del sitio, incluidas las partes comunes, como encabezado, pie de página, menú, etc.

       My site. <?=$pagetitle?>   

    y links.tpl.php es la plantilla de página real:

     

      Eventualmente puede llegar a diseños más complejos, como con el controlador frontal uno, pero para el primer sitio, este es fácil y poderoso.

      • Sí, te recomiendo que incluyas scripts de encabezado y barra de navegación desde otro archivo … donde puedes mantenerlos de forma independiente. Creo que eso es bastante importante.
      • Te recomiendo que hagas eco / imprima html desde php, en lugar de insertar php en html (más fácil al hacer cosas como analizar $ _GET / $ _ POST, etc.)

      Te recomiendo que crees una plantilla y otra que tenga funciones que impriman (o repitan) las tags html, encabezado, pie de página, barra de título, barra de navegación, etc. Solo incluye la secuencia de comandos con las funciones y todas tus páginas pueden tener la siguiente estructura :

       Hello, world! or other content.

      '; print_html_post_content(); ?>

      He encontrado que esto es bastante limpio, y es fácil agregar funcionalidad cuando te metes con $ _GET, $ _POST y $ _SESSION, etc.

      Sugeriría usar algún sistema de plantillas (Smarty sería bueno). En realidad, no importa dónde coloque el encabezado y la barra de navegación a primera vista. ¿Cuándo debe excluir la barra de navegación y almacenarla por separado? Cuando desee tener la capacidad de incluir diferentes modos de navegación. barras en diferentes partes de su sitio web.

      Por ejemplo, tengo un sitio web con varios subdominios: about.website.dev, special.website.dev y, digamos, terms.website.dev

      En about.website.dev las entradas de mi barra de navegación serán: “Quién soy”, “Qué hago”, “Qué bueno soy”; en special.website.dev: “Productos”, “Soluciones”, “Consejos”, etc.

      La plantilla de la barra de navegación es la misma: solo un ciclo en todas las entradas, pero el contenido es diferente. En este caso, separa la barra de navegación del encabezado. Si no usa plantillas, solo cree tres archivos (en este caso): about.nav.php, special.nav.php y terms.nav.php y luego solo incluya la barra de navegación apropiada.

      Si tu navegador la barra es igual en todas partes en su sitio web, puede almacenarla en header.php. Una vez que tenga que separarse, no será difícil, pero aún así sugeriría que use plantillas, solo para acostumbrarse al “desarrollo adecuado del sitio web”.

      Echa un vistazo a diferentes sistemas de plantillas como Smarty o Savant. Personalmente, me gusta el sistema de plantillas de Django (python). Y acostúmbrate a separar tu vista y tu lógica de negocios.

      En mi humilde opinión, sería mejor echar un vistazo a un marco de aplicación web basado en php. como la lista en http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#PHP

      A pesar de que puede ser un poco más para aprender por adelantado (el marco, así como php), todos ellos tienen estructuras lo suficientemente sólidas para desarrollar sitios web dynamics con. Encuentra uno que sea lo suficientemente ligero y tenga buenos tutoriales y te encontrarás aprendiendo el lenguaje php en el camino. Creo que esto será más fácil que usar php sin procesar en la etapa inicial.

      Cuando sepa más, puede hacer una evaluación de los marcos que prefiera y que se adapten a sus necesidades o estilo de encoding o incluso revertir a raw php.

      Si quieres un buen libro sobre el tema, prueba

      • Aplicaciones de bases de datos MySQL / PHP por Brad Bulger, Jay Greenspan y David Wall

      Lo que estás preguntando es más o menos una cuestión de gusto. Cuanto más compleja sea tu aplicación, más trabajo se debe incluir en una estructura elaborada y sostenible.

      Mi opinión es: primero aprende los conceptos básicos y luego mira los marcos. Lo hace mucho más fácil si entiendes lo que sucede debajo del capó.

      Pruebe Agile Toolkit, probablemente el marco de interfaz de usuario de PHP más fácil para empezar diseñado para el software web.

      Vas a superar muchos problemas. http://agiletoolkit.org

      Dependiendo de la elección de framework / plain PHP, debes hacerlo de acuerdo con sus prácticas. Por ejemplo, en Agile Toolkit utiliza plantillas, por lo que coloca su encabezado y pie de página en el archivo templates / jui / shared.html. Se explica en el primer screencast.

      Si reinventa la rueda y avanza con PHP simple, entonces debería hacerlo mejor include 'header.php'; . Un buen marco de trabajo le permite NO aprender sobre el funcionamiento interno del software web. El mal marco necesita que sepas todo de todos modos.

      Aquí hay muchas buenas respuestas, pero solo para agregar …

      Divida la funcionalidad en archivos de inclusión separados y utilice una forma consistente de localizar estos archivos.

      Encuentra un buen estilo de encoding PHP y apégate a él. por ejemplo, horda , PEAR

      No tenga código o HTML ejecutado en línea en archivos de inclusión; solo debería hacer algo cuando lo invoque específicamente desde su script de control.

      Si incluye archivos que generan HTML, asegúrese de que brinden funcionalidad para cerrar cualquier etiqueta que abran. es decir, no solo un ‘header.php’

      Como los archivos CSS y Javascript no se deben declarar directamente fuera del HEAD del documento HTML, observe las formas en que la funcionalidad invocada puede agregarlos a un documento HTML existente. Una solución obvia es utilizar un sistema de plantillas combinado con el búfer de salida, pero puede también inyecte archivos JS y CSS adicionales en la sección HEAD más adelante en el documento utilizando javascript.

      Use MVC – http://www.yiiframework.com/doc/guide/1.1/en/basics.mvc Vea Yii-framework http://yiiframework.com , tiene todo lo que necesita 🙂