12 de octubre
Cuando un patrón de diseño ha sido probado en el desarrollo web, entonces no es el patrón Modelo-Vista-Controlador o MVC justo. Durante mucho tiempo he estado buscando un framework PHP que implementa MVC constantemente los brotes, pero no lo mismo que usar un martillo para cascar una nuez. Pies de galgo (o "Nueva Alemania" peso ligero) orientado a objetos y que debería ser. PHP Fama Obras como Zend, CakePHP y Symphony son más propensos a los coches de carreras. A pesar de que establece perfectamente a MVC, orientado a objetos que son, pero de pies ligeros es diferente.
Así que estoy en CodeIgniter encontrado, lo que se pretende por una "base estrecha" (tamaño pequeño) a venir. La instalación es fácil. La postal en "DocumentRoot" Desembalaje del servidor Web, cambiar el nombre del directorio y la URL completa de la página web del archivo de configuración system/application/config/config.php especifique.
'base_url' ] = "http://localhost/allMedia/" ; $ Config ['base_url'] = "http://localhost/allMedia/";
Y ya se puede escribir la primera.
Controller { extends Controller {libros de clase
... algo de lógica ...
/ / Crear la vista
load -> view ( 'common/header' , $headerdata ) ; $ This-> load -> view ('común / de cabecera', $ datos de cabecera);
load -> view ( 'book/list' , $data ) ; $ This-> load -> view ('libro / list', $ datos);
load -> view ( 'common/menu' , $menudata ) ; $ This-> load -> view ('común / menu', $ menudata);
load -> view ( 'common/footer' ) ; $ This-> load -> view ('común / pie de página');
} CodeIgniter es capaz de ensamblar las partes de un punto de vista antes de su envío. Las plantillas son compatibles, pero no es obligatorio.
Para mí, este marco trae todo a lo que necesito:
- el patrón de diseño MVC
- coherente orientada a objetos
- Rendimiento
- bonita URL
- Clases de ayuda (por ejemplo, para la paginación)
- buena integración de la doctrina como un OR Mapper
- por no hablar de una buena documentación
"El fuego se ha encendido en mí", e implementó un proyecto de pequeña ya con CodeIgniter. Así que si Zend y compañía son demasiado complejas, debería echar un vistazo a CodeIgniter un poco más de cerca. Vale la pena.
Cuando un patrón de diseño ha sido probado en el desarrollo web, entonces no es el patrón Modelo-Vista-Controlador o MVC justo. Durante mucho tiempo he estado buscando un framework PHP que implementa MVC constantemente los brotes, pero no lo mismo que usar un martillo para cascar una nuez. Pies de galgo (o "Nueva Alemania" peso ligero) orientado a objetos y que debería ser. PHP Fama Obras como Zend, CakePHP y Symphony son más propensos a los coches de carreras. A pesar de que establece perfectamente a MVC, orientado a objetos que son, pero de pies ligeros es diferente. Así que me encontré con CodeIgniter, que es reclamado por un "pie pequeño" (tamaño pequeño) a venir. La instalación es fácil. La postal en "DocumentRoot" Desembalaje del servidor Web, cambiar el nombre del directorio e introduzca la URL completa de la página web en el sistema de archivos de configuración / application / config / config.php. $ Config ['base_url'] = "http://localhost/allMedia/": Y ahora usted puede escribir la primera. extends Controller {libros de clase ... algo de lógica ... / / Construir vista $ this-> load-> view ('común / de cabecera', $ datos de cabecera), $ this-> load-> view ('libro / list', $ datos) $ this-> load-> view ("común / menu ', $ menudata), $ this-> load-> view (' común / pie de página");} CodeIgniter en una posición de un punto de vista es para montar las piezas antes de su envío. Las plantillas son compatibles, pero no es obligatorio. Para mí personalmente este marco a todos con lo que necesito: el patrón de diseño MVC coherentes orientadas a objetos de rendimiento clases de ayuda URL amigable (como la de paginación) una buena integración de la doctrina como un OR Mapper, por no hablar de un buen documental "El fuego está en mi iluminado" y Ya en marcha un pequeño proyecto con CodeIgniter. Así que si Zend y compañía son demasiado complejas, debería echar un vistazo a CodeIgniter un poco más de cerca. Vale la pena.
gklinkmann escrito por \ \ tags: marcos , código abierto , php
05 de mayo
Si yo tendría que construir una aplicación web de Java en el momento, probablemente relacionado con el Spring Framework para implementar. Como parte de Jax 2010 , Juergen Hóller (uno de los desarrolladores principales de la primavera) una revisión, un inventario y una perspectiva dada en primavera.
Después de Springsteen ha jugado como muchos otros marcos y las tecnologías alternativas (como la SWT y GWT), en su opinión, sobre todo en el papel como una plataforma y estándares, "facilitadores" un papel muy importante. , Es decir, los marcos que sean más innovadoras y mayores ciclos de lanzamiento tiene como normas, como la APP. Por el contrario, ofrecen incluso la posibilidad de nuevas normas para integrarse en los entornos existentes. Por lo tanto, es posible trabajar con Spring 3.0 aplicaciones utilizando estándares como JSF 2.0 y JPA 2.0, o aún en los más antiguos de JBoss, Tomcat o Websphere puede incluso funcionar las instalaciones.
Esta función integradora es, según Juergen Hóller seguir para determinar la ruta de la primavera. Aquí para junio / julio de 2010, la versión 3.1 y la versión 3.2 en 2011 también se proporcionan. Esto será como en el pasado por la liberación de Milestone mantiene siempre cerca de las últimas versiones de los estándares o incluso un pequeño paso adelante.
Si yo tendría que construir una aplicación web de Java en el momento, probablemente lo pondría con el Marco de la primavera. Como parte de 2010, Juergen Hóller Jax (uno de los desarrolladores principales de la primavera) una revisión, un inventario y una perspectiva dada en primavera. Después de Springsteen ha jugado como muchos otros marcos y las tecnologías alternativas (como la SWT y GWT), en su opinión, sobre todo en el papel como una plataforma y estándares, "facilitadores" un papel muy importante. , Es decir, los marcos que sean más innovadoras y mayores ciclos de lanzamiento tiene como normas, como la APP. Por el contrario, ofrecen incluso la posibilidad de nuevas normas para integrarse en los entornos existentes. Por lo tanto, es posible trabajar con Spring 3.0 aplicaciones utilizando estándares como JSF 2.0 y JPA 2.0, o aún en los más antiguos de JBoss, Tomcat o Websphere puede incluso funcionar las instalaciones. Esta función integradora es, según Juergen Hóller seguir para determinar la ruta de la primavera. Aquí para junio / julio de 2010, la versión 3.1 y la versión 3.2 en 2011 también se proporcionan. Esto será como en el pasado por la liberación de Milestone mantiene siempre cerca de las últimas versiones de los estándares o incluso un pequeño paso adelante.
gklinkmann escrito por \ \ tags: Marcos , Java , Open Source
22 de marzo
He usado un par de horas a mi alojado en Google Code proyecto Grum sobre el estado de cosas para traer (que era de hecho era hora). Grum es una pequeña aplicación Grails para la gestión de usuarios, lo que me permite la web marco de Grails "para "jugar.
Soy consciente de la aplicación de los muchos plugins Grails omitidos a fin de tener como efectos secundarios posible y mantenerlo para aquellos que simplemente buscan una introducción a Grails. Por lo tanto, incluido en soluciones Grum, tales como el hombre:
- el acceso a una base de datos MySQL implementado
- 1:1, 1: ny n: m GORM modelada relaciones
- escribir sus propias librerías de etiquetas
- La biblioteca de etiquetas JSP DisplayTag utiliza la página de datos por la página, para agrupar, ordenar, y en todos los formatos posibles (Excel, CSV, XML, PDF) a la exportación
- te permite subir archivos
- las pruebas de funcionamiento con el plugin de webtest utiliza
- y la entrega de XML basado en la URL (la negociación de contenido corto) implementa
La nueva versión 0.3 ahora utiliza griales 1.2.1 y el webtest plugin en la versión 2.0.3. La fuente , los archivos de SQL para crear la base de datos MySQL y un archivo web tiene todas las librerías necesarias en Google Code para descargar listas.
Nutztungshinweise:
El código se puede utilizar libremente, pero puede contener errores de los que no asumen ninguna responsabilidad. Las condiciones de la licencia de las bibliotecas que deben ser respetados.
He usado un par de horas para mi proyecto alojado en Google Code Grum sobre el estado de cosas para traer (ya era hora, también). Grum una pequeña aplicación Grails para la gestión de usuarios, lo que me permite el marco Grails web es "jugar". Soy consciente de la aplicación de los muchos plugins Grails omitidos a fin de tener como efectos secundarios posible y mantenerlo para aquellos que simplemente buscan una introducción a Grails. Por lo tanto, incluidas en las soluciones de Grum, como la forma de: acceder a una base de datos MySQL implementado 1:1, 1: N y N: m relaciones modeladas en librerías de etiquetas propias GORM escribir la biblioteca de etiquetas JSP utiliza DisplayTag a la página de datos por página, a la agrupar, ordenar, y en todos los formatos posibles (Excel, CSV, XML, PDF) para exportar el archivo de carga permite que las pruebas funcionales con el plugin webtest se utiliza y la entrega de XML, debido a la URL (la negociación de contenido corto) implementa la nueva versión 0.3 ahora utiliza griales 1.2.1 y el webtest plugin en la versión 2.0.3. Las fuentes, que son archivos de SQL para crear la base de datos MySQL y un archivo web con todas las librerías necesarias disponibles en código de Google para su descarga. Nutztungshinweise: El código se puede utilizar libremente, pero puede contener errores de los que no asumen ninguna responsabilidad. Las condiciones de la licencia de las bibliotecas que deben ser respetados.
gklinkmann escrito por \ \ tags: marcos y Grails y Groovy , Java , Web
19 de octubre
Mientras estaba en la primera parte de mi pequeña serie de clientes HTTP han empleado con pera, lo haré ahora en el segundo Una parte de mi atención en el Zend Framework dirigida.
Aquí, también, necesitan de 2 paquetes para completar la tarea (ver parte 1 ). El paquete Zend_Http es como el paquete de PEAR Http_Request2 de pura comunicación HTTP adecuado.
Con Zend_Dom puede desmontar el HTML recibido.
Una manera de resolver la tarea podría ser:
A
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
| <Php
; require_once 'Zend / HTTP / Client.php';
; require_once 'Zend / HTTP / response.php';
; require_once 'Zend / Dom / query.php';
'http://www.google.de' ; $ Url = 'http://www.google.de';
new Zend_Http_Client ( $url , array ( $ Cliente = new Zend_Http_Client ($ url, array (
0 , 'Maxredirects' => 0,
30 ) ) ; 'Tiempo de espera' => 30));
try {
$client -> request ( 'GET' ) ; $ Respuesta = $ client -> solicitud ('GET');
200 == $response -> getStatus ( ) ) { if ($ respuesta == 200 -> getStatus ()) {
new Zend_Dom_Query ( $response -> getBody ( ) ) ; $ Dom = new Zend_Dom_Query ($ respuesta -> GetBody ());
$dom -> query ( 'form' ) ; Formas $ = $ dom -> query ('form');
$forms -> current ( ) ; $ Form = $ formas -> current ();
$form -> getAttribute ( 'action' ) ; $ Action = $ this - getAttribute> ('acción');
new Zend_Http_Client ( $url . $action , array ( $ Cliente = new Zend_Http_Client ($ url. $ Acción, array (
0 , 'Maxredirects' => 0,
30 ) ) ; 'Tiempo de espera' => 30));
setParameterGet ( 'q' , 'http client examples' ) ; $ Cliente -> setParameterGet ('q', 'ejemplos de clientes http');
$client -> request ( 'GET' ) ; $ Respuesta = $ client -> solicitud ('GET');
new Zend_Dom_Query ( $response -> getBody ( ) ) ; $ Dom = new Zend_Dom_Query ($ respuesta -> GetBody ());
$dom -> query ( 'a.l' ) as $link ) { foreach ($ dom -> query ('A.L') as $ enlace) {
$link -> hasAttribute ( 'href' ) ) { if ($ link - hasAttribute> ('href')) {
$link -> getAttribute ( 'href' ) ; Href = $ $ enlace - getAttribute> ('href');
$link -> textContent ; $ Enlace = $ enlace de texto - el contenido del texto>;
$href \" > $linkText </a><br />" ; echo "<a href= \" $href \"> $ texto del enlace </ a> <br />";
}
}
{ Else {}
. $response -> getStatus ( ) . ' echo "inesperado de estado HTTP: '$ respuesta -> getStatus ()' .. '.
responseCodeAsText ( ) ; $ Respuesta -> responseCodeAsText ();
}
Zend_Http_Exception $e ) { Captura} (Zend_Http_Exception $ e) {
. $e -> getMessage ( ) ; 'Error:' echo $ e -> getMessage ().
}
> |
El código habla por sí solo, así que no voy a explicar en este punto tanto detalle como en la primera parte.
La diferencia está en el análisis de HTML. El método query () (líneas 18 y 31) establece que no es una matriz, sino más bien un objeto de clase Zend_Dom_Query_Result espalda. Debido a esta clase, los dos de interfaz Countable y Iterator en práctica, los resultados de la investigación con un foreach . bucle para pasar por Cada partido es un objeto de clase DOMElement muestra.
Conclusión:
Zend también ofrece una buena Zend_Http Zend_Dom y cliente HTTP. Si utiliza otras clases ya en su proyecto desde el Zend Framework, este método se recomienda.
Outlook:
En la Parte 3 dejo el mundo de PHP e imaginar con HttpUnit un cliente HTTP muy cómodo y rico en funciones para Java.
Serie: Parte 1 - Pera Como tengo en la primera parte de mi pequeña serie de clientes HTTP empleados por Pera, lo haré ahora en el segundo Una parte de mi atención en el Zend Framework dirigida. Aquí, también, necesitan de 2 paquetes para completar la tarea (véase la Parte 1). El paquete es como el paquete de PEAR Zend_Http Http_Request2 de pura comunicación HTTP adecuado. Con Zend_Dom puede desmontar el HTML recibido. Podría verse como una manera de resolver el problema de esta manera: El código habla por sí solo, así que no voy a explicar en este punto tanto detalle como en la primera parte. La diferencia está en el análisis de HTML. El método query () (líneas 18 y 31) establece que no es una matriz, sino más bien un objeto de clase de nuevo Zend_Dom_Query_Result. Dado que esta clase implementa Contable y tanto la interfaz Iterator, los resultados se pueden pasar a través de la solicitud con un bucle foreach. Cada partido se muestra en un objeto de DOMElement clase. Conclusión: Zend ofrece Zend_Dom Zend_Http y un buen cliente HTTP. Si utiliza otras clases ya en su proyecto desde el Zend Framework, este método se recomienda. Perspectivas: En la Parte 3 dejo el mundo de PHP e imaginar con HttpUnit un cliente HTTP muy cómodo y rico en funciones para Java.
gklinkmann escrito por \ \ tags: marcos , php , web