2011-02-01 6 views
5

Estoy desarrollando una aplicación web y estoy usando PHP y Javascript. Hoy, estoy empezando a dibujar todos los diagramas de clase de diseño, pero no sé exactamente cómo mezclar ambas tecnologías.Mix Javascript y PHP en mi modelo de diseño

creo que algo como lo siguiente debe ser bueno:

UML example diagram

Pero, en realidad, no estoy seguro de si escribir la extensión .php en el nombre de la clase es suficientemente clara, o lo que yo La necesidad es separar los diagramas en dos: uno para las clases de Javascript y otro para las clases de PHP.

Estoy usando CodeIgniter (patrón MVC) y Javascript. Cualquier sugerencia será realmente apreciada.

Gracias!

+0

¿Tiene algún comentario sobre su modelo (gráfico) o sobre cómo combinarlos en una aplicación? – gnur

+0

Tengo algunas clases en Javascript y otras en PHP, entonces lo que necesito es cómo puedo combinarlas en un solo diagrama (porque algunas vistas de PHP están usando mi código JS). ¡Gracias! –

+0

¿Entonces la pregunta es cómo debería representarlos en el diagrama y no como archivos en el servidor? –

Respuesta

7

Por lo general, usted no quiere hacer esto. Es un problema de latencia cuando se ve la página web en un navegador. Cada archivo javascript por separado vence el almacenamiento en caché y requiere un tiempo de transferencia adicional antes de que una página pueda cargarse. Es commonly advised para combinar archivos JS siempre que sea posible y práctico para aprovechar mejor el almacenamiento en caché del navegador. Así que mi primera sugerencia es no dividir arbitrariamente su JS por razones arquitectónicas ...

Ahora, dicho esto, para responder a su pregunta en su totalidad, creo que depende de cómo ve JS. Si lo ves desde la perspectiva de que mejora tu aplicación PHP, dividirla junto con tus puntos de vista no está nada mal (la sugerencia anterior no obstante).

Sin embargo, suelo ver a JS como una capa de aplicación separada sobre la aplicación PHP. JS interactúa con la capa de PHP a través de API definidas. Por lo tanto, básicamente se trata de una aplicación de interfaz gráfica de usuario completa que simplemente utiliza la API definida por la aplicación PHP. Entonces, con eso en mente, generalmente construyo la aplicación JS con su propia arquitectura que es más dependiente de sí misma que la aplicación PHP.En otras palabras, solo porque una parte de la aplicación JS interactúa con PHP no significa que la pieza de código pertenezca a la aplicación PHP.

¿Eso tiene sentido?

+0

Estoy de acuerdo con la segunda parte de esto, javascript es parte de una vista determinada, su php es su controlador y parte del almacenamiento es su modelo para la aplicación. – Chris

+0

@Chris: Esa es una forma de verlo. Hay más de uno Por ejemplo, si está haciendo una JS discreta pero aún desea la interacción ajax, no puede construirla como la capa de vista completa ya que necesita la capa de vista en PHP para la parte discreta. Entonces esa es la razón por la cual los diferentes enfoques. Normalmente lo veo como una aplicación completamente separada (y la pruebo como tal) que está relacionada ya que llama a las API. Solo diferentes maneras de verlo (y no es incorrecto tener más de 1) ... – ircmaxell

+0

Esa es una vista más refinada que la mía, pero en la misma línea. Estoy totalmente de acuerdo y me gusta esa perspectiva mejor! La pregunta que tengo es ¿cuánta responsabilidad pones en el js para la generación de HTML versus el servidor del lado php? (Claro que esta respuesta es subjetiva, pero curiosa por su experiencia.) – Chris

2

No sé la forma en que haces las cosas normalmente, pero en mis proyectos, tiendo a separar PHP y JS. En primer lugar, es más fácil de desarrollar y depurar si vas por ese camino, en segundo lugar, si tratas javascript como una segunda capa en lugar de estar en el mismo nivel de programación que PHP obtendrás una alternativa de trabajo en caso de que tu JS no lo haga No funciona, o el usuario de su aplicación web tiene javascript deshabilitado.

Tiendo a hacer que todo funcione en PHP y luego sobreescribo algunas acciones con javascript para que funcionen a través de ajax en lugar de la forma tradicional de trabajar en la Web de la vieja escuela.

--- Revisión siguiente primer comentario ---

Entonces, es posible que desee para tratar el PHP y Javascript como la parte que separa las aplicaciones. El primer sistema (PHP) genera el estado inicial. Tras la acción del usuario, el segundo sistema (JS) realiza una consulta al primero y espera la respuesta, de esta manera, configurará algún tipo de API que estandarizará sus transacciones.

Solía ​​trabajar con especialistas en información de diseño y a menudo se refieren a Jesse James Garrett como un "gurú" en ese campo de especialización; tal vez quiera consultar su sitio (hay plantillas preconfeccionadas para omnigrafle, visio y algunas otras))

A través de su escritura y ejemplo, es posible que pueda encontrar los símbolos y elementos correctos para representar su sistema.

Jesse James Garrett's website

+0

Hola Jeff, gracias por tu respuesta. Todo el proyecto usa ambas tecnologías (mucho JavaScript y el uso de PHP para cargar algunos recursos externos a través de Ajax). Si el usuario ha desactivado Javascript, la página web no funcionará (pero no es mi decisión, solo soy un ingeniero de software). Entonces, divides en dos capas tu diseño, pero ¿qué hay de tus diagramas? ¿Puedes explicar en pocas palabras cómo dibujaste diagramas que usan JS y PHP juntos? ¡Gracias de nuevo! –

3

Tratando de poner todas sus clases (incluso dentro de una sola aplicación - que tiene dos: una applicatoin PHP y una aplicación de JS) en un diagrama UML es más o menos una forma de perder mucho tiempo y no ganar nada.

Usa UML para mostrar las dependencias dentro de un paquete o un grupo de clases que trabajan juntas, pero no intentes hacerlo para una aplicación completa.

Cuestiones relacionadas