12 octobre
Quand un modèle de conception a été prouvé dans le développement web, puis il ya le modèle Model-View-Controller ou juste MVC. J'ai longtemps été à la recherche d'un framework PHP qui implémente MVC systématiquement les pousses, mais pas le même que l'aide d'un marteau-pilon pour casser une noix. Pied léger (ou "Nouvelle allemande" léger) orienté-objet et il devrait être. PHP Fame Des ouvrages tels que Zend, CakePHP et Symphony sont aussi susceptibles de voitures de course. Bien que ils ont mis parfaitement à MVC, orienté-objet, ils sont, mais pas léger est différent.
Donc, je suis sur CodeIgniter rencontré, ce qui est revendiqué par une "base étroite" (faible encombrement) à venir le long. L'installation n'est jamais facile. Le ZIP dans "DocumentRoot" Déballage du serveur Web, renommer le répertoire et l'URL complète du site Web dans le fichier de configuration system/application/config/config.php préciser.
'base_url' ] = "http://localhost/allMedia/" ; $ Config ['base_url'] = "http://localhost/allMedia/";
Et vous pouvez déjà écrire son premier.
Controller { extends Controller {livres de classe
... une certaine logique ...
/ / Construire vue
load -> view ( 'common/header' , $headerdata ) ; $ This -> charge -> vue («common / en-tête ', $ data-tête);
load -> view ( 'book/list' , $data ) ; $ This -> charge -> vue («livre / liste ', $ data);
load -> view ( 'common/menu' , $menudata ) ; $ This -> charge -> vue («common / menu ', $ menudata);
load -> view ( 'common/footer' ) ; $ This -> charge -> vue («common / pied de page ');
} CodeIgniter est capable d'assembler des pièces d'un point de vue avant l'expédition. Les modèles sont pris en charge mais pas nécessaire.
Pour moi, ce cadre apporte tout à ce dont j'ai besoin:
- le design pattern MVC
- cohérente orientée objet
- Performance
- belle URL
- Les classes utilitaires (par exemple pour la pagination)
- bonne intégration de la doctrine comme un OU Mapper
- sans parler d'une bonne documentation
"Le feu est allumé en moi" et mis en œuvre un petit projet déjà avec CodeIgniter. Donc, si Zend et Cie sont trop complexes, devraient jeter un oeil à CodeIgniter un peu plus près. Il vaut la peine.
Quand un modèle de conception a été prouvé dans le développement web, puis il ya le modèle Model-View-Controller ou juste MVC. J'ai longtemps été à la recherche d'un framework PHP qui implémente MVC systématiquement les pousses, mais pas le même que l'aide d'un marteau-pilon pour casser une noix. Pied léger (ou "Nouvelle allemande" léger) orienté-objet et il devrait être. PHP Fame Des ouvrages tels que Zend, CakePHP et Symphony sont aussi susceptibles de voitures de course. Bien que ils ont mis parfaitement à MVC, orienté-objet, ils sont, mais pas léger est différent. Donc, je suis tombé sur CodeIgniter, qui est revendiquée par un "petit pied" (faible encombrement) à venir le long. L'installation n'est jamais facile. Le ZIP dans "DocumentRoot" Déballage du serveur Web, renommer le répertoire et entrez l'URL complète du site Web dans le système de fichier de configuration / application / config / config.php. $ Config ['base_url'] = "http://localhost/allMedia/": Et maintenant vous pouvez écrire son premier. extends Controller {livres de classe ... une certaine logique ... / / Construire vue $ this-> load-> view («common / en-tête", les données d'en-tête $), $ this-> load-> view («livre / liste ', $ data) $ this-> load-> view ("common / menu ', $ menudata), $ this-> load-> view (« common / pied de page');} CodeIgniter dans une position d'un point de vue est d'assembler des pièces avant l'expédition. Les modèles sont pris en charge mais pas nécessaire. Pour moi personnellement ce cadre tous avec ce dont j'ai besoin: le design pattern MVC consistent classes orientées objet de performance URL Helper jolie (comme pour la pagination) une bonne intégration de la doctrine comme un OU mappeur, pour ne pas mentionner un bon documentaire "Le feu est dans ma éclairé» et déjà mis en place un petit projet avec CodeIgniter. Donc, si Zend et Cie sont trop complexes, devraient jeter un oeil à CodeIgniter un peu plus près. Il vaut la peine.
gklinkmann écrit par \ \ tags: cadres , open source , php
5 mai
Si je serait obligé de construire une application Web Java pour le moment, je serais probablement liée à la Spring Framework pour mettre en œuvre. Dans le cadre de Jax 2010 , Juergen Hoeller (l'un des développeurs principaux de printemps) un examen, un inventaire et une perspective donnée sur Spring.
Après Springsteen a joué le plus grand nombre d'autres cadres et les technologies alternatives (comme SWT et GWT), à son avis, en particulier dans le rôle de plateforme et de normes, «facilitateurs» un grand rôle. , C'est à dire des cadres plus innovantes et les cycles de mise plus avoir comme des normes telles que l'APP. Plutôt, ils offrent même la possibilité de nouvelles normes à intégrer dans les environnements existants. Il est donc possible de travailler avec Spring 3.0 les applications utilisant des standards tels que JSF 2.0 et JPA 2.0, ou encore sur les anciens JBoss, Websphere ou Tomcat peut même exécuter des installations.
Ce rôle d'intégration est, selon Juergen Hoeller continuer à déterminer le chemin du printemps. Ici pour Juin / Juillet 2010, version 3.1 et la version 3.2 en 2011 sont également fournis. Ce sera comme dans le passé par des communiqués de Milestone toujours gardé à proximité des dernières versions des normes ou sont-ils même un petit pas en avant.
Si je serait obligé de construire une application Web Java pour le moment, je serais probablement le mettre avec le framework Spring. Dans le cadre de l'année 2010, Juergen Hoeller Jax (l'un des développeurs principaux de printemps) un examen, un inventaire et une perspective donnée sur Spring. Après Springsteen a joué le plus grand nombre d'autres cadres et les technologies alternatives (comme SWT et GWT), à son avis, en particulier dans le rôle de plateforme et de normes, «facilitateurs» un grand rôle. , C'est à dire des cadres plus innovantes et les cycles de mise plus avoir comme des normes telles que l'APP. Plutôt, ils offrent même la possibilité de nouvelles normes à intégrer dans les environnements existants. Il est donc possible de travailler avec Spring 3.0 les applications utilisant des standards tels que JSF 2.0 et JPA 2.0, ou encore sur les anciens JBoss, Websphere ou Tomcat peut même exécuter des installations. Ce rôle d'intégration est, selon Juergen Hoeller continuer à déterminer le chemin du printemps. Ici pour Juin / Juillet 2010, version 3.1 et la version 3.2 en 2011 sont également fournis. Ce sera comme dans le passé par des communiqués de Milestone toujours gardé à proximité des dernières versions des normes ou sont-ils même un petit pas en avant.
gklinkmann écrit par \ \ tags: cadres , Java , Open Source
22 mars
J'ai utilisé une couple d'heures à mon hébergé sur Google Code project Grum sur l'état des choses à apporter (il était en effet sur le temps). Grum est une petite application Grails pour la gestion des utilisateurs, me permettant de le framework web Grails 'à «jouer.
Je suis conscient de la mise en œuvre des nombreux plugins Grails omis afin d'avoir moins d'effets secondaires que possible et de le conserver pour ceux qui recherchent simplement une introduction à Grails. Ainsi, inclus dans des solutions Grum, comme l'homme:
- l'accès à une base de données MySQL en œuvre
- 1:1, 1: n et n: m GORM modélisé les relations
- écrire vos propres libs tag
- Le JSP Tag Library displaytag utilisé la page de données par page, au groupe, en quelque sorte, et dans tous les formats possibles (Excel, CSV, XML, PDF) à l'exportation
- vous permet de télécharger des fichiers
- tests fonctionnels avec le plug-in webtest utilise
- et la prestation de XML basé sur les URL spécifique (négociation de contenu court) met en œuvre
La nouvelle version 0.3 utilise maintenant Grails 1.2.1 et le plugin dans webtest la version 2.0.3. La source de , les fichiers SQL pour créer la base de données MySQL et d'un archivage web possède toutes les bibliothèques nécessaires sur Google Code pour télécharger prête.
Nutztungshinweise:
Le code peut être utilisé librement, mais peut contenir des erreurs pour lesquelles je décline toute responsabilité. Les conditions de licence des bibliothèques, il doit être observé.
J'ai utilisé une couple d'heures pour mon projet hébergé sur Google Code Grum sur l'état des choses à apporter (il était temps, aussi). Grum une petite application Grails pour la gestion des utilisateurs, me permettant de le cadre Grails web est "à jouer." Je suis conscient de la mise en œuvre des nombreux plugins Grails omis afin d'avoir moins d'effets secondaires que possible et de le conserver pour ceux qui recherchent simplement une introduction à Grails. Ainsi, inclus dans des solutions Grum, tels que comment: accéder à une base de données MySQL en œuvre 1:1, 1: n et n: relations m modélisés dans libs Gorm propre étiquette écrire la bibliothèque de balises JSP utilisé displaytag à la page de données par page, au groupe, en quelque sorte, et dans tous les formats possibles (Excel, CSV, XML, PDF) pour exporter le fichier permet de téléchargement des tests fonctionnels avec le plugin webtest est utilisé et la livraison de XML en raison de spécifique URL (négociation de contenu court) met en œuvre la nouvelle version 0.3 utilise maintenant Grails 1.2.1 et le plugin dans webtest la version 2.0.3. Les sources, qui sont des fichiers SQL pour créer la base de données MySQL et d'une archive web avec toutes les bibliothèques nécessaires sont disponibles sur Google code pour le téléchargement. Nutztungshinweise: Le code peut être utilisé librement, mais peut contenir des erreurs pour lesquelles je décline toute responsabilité. Les conditions de licence des bibliothèques, il doit être observé.
gklinkmann écrit par \ \ tags: cadres , des Grails , les Groovy , Java , Web
19 octobre
Pendant que j'étais dans la première partie de ma petite série sur les clients HTTP ont employé à la poire, je vais maintenant à la 2e Une partie de mon attention sur le Zend Framework adressée.
Ici aussi, besoin de 2 paquets pour terminer la tâche (voir Partie 1 ). Le paquet Zend_Http est comme le Http_Request2 paquet PEAR à la pure communication HTTP approprié.
Avec Zend_Dom peut démonter le HTML reçu.
Une manière de résoudre la tâche pourrait être:
Une
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 ( $ Client = new Zend_Http_Client ($ url, array (
0 , «Maxredirects '=> 0,
30 ) ) ; 'Timeout' => 30));
try {
$client -> request ( 'GET' ) ; $ Response = $ client -> demande ('GET');
200 == $response -> getStatus ( ) ) { if ($ response == 200 -> getStatus ()) {
new Zend_Dom_Query ( $response -> getBody ( ) ) ; $ Dom = new Zend_Dom_Query ($ response -> getBody ());
$dom -> query ( 'form' ) ; $ Les formes = $ dom -> query ('form');
$forms -> current ( ) ; $ Formulaire = $ formes -> current ();
$form -> getAttribute ( 'action' ) ; $ Action = $ this - getAttribute> ('action');
new Zend_Http_Client ( $url . $action , array ( $ Client = new Zend_Http_Client ($ url. $ L'action, array (
0 , «Maxredirects '=> 0,
30 ) ) ; 'Timeout' => 30));
setParameterGet ( 'q' , 'http client examples' ) ; $ Client -> setParameterGet ('q', des exemples client http ');
$client -> request ( 'GET' ) ; $ Response = $ client -> demande ('GET');
new Zend_Dom_Query ( $response -> getBody ( ) ) ; $ Dom = new Zend_Dom_Query ($ response -> getBody ());
$dom -> query ( 'a.l' ) as $link ) { foreach ($ dom -> query ('a.l') as $ link) {
$link -> hasAttribute ( 'href' ) ) { if ($ link - hasAttribute> ('href')) {
$link -> getAttribute ( 'href' ) ; $ Href = $ link - getAttribute> ('href');
$link -> textContent ; $ Lien = $ lien texte - le contenu du texte>;
$href \" > $linkText </a><br />" ; echo "<a href= \" $href \"> texte du lien $ </ a> <br />";
}
}
{ Else {}
. $response -> getStatus ( ) . ' echo "inattendue d'état HTTP: '$ response -> getStatus ()' .. '.
responseCodeAsText ( ) ; $ Réponse -> responseCodeAsText ();
}
Zend_Http_Exception $e ) { Catch} (Zend_Http_Exception $ e) {
. $e -> getMessage ( ) ; 'Erreur:' echo $ e -> getMessage ().
}
?> |
Le code parle de lui-même, je ne vais pas l'expliquer à ce point autant de détails que dans la première partie.
La différence est dans l'analyse de HTML. La méthode query () (lignes 18 et 31) prévoit que n'est pas un tableau, mais plutôt un objet de classe Zend_Dom_Query_Result dos. Parce que cette classe, l'interface à deux Countable et Iterator mis en œuvre, les résultats de l'enquête avec un foreach . boucle pour parcourir les Chaque match unique est un objet de la classe DOMElement montré.
Conclusion:
Zend propose également une bonne Zend_Dom Zend_Http et le client HTTP. Si vous utilisez d'autres classes déjà dans son projet de la Zend Framework, cette approche est recommandée.
Perspectives:
Dans la partie 3 je quitte le monde PHP et imaginer avec HttpUnit un client très confortable et riche en fonctionnalités HTTP pour Java.
Série: Partie 1 - Poire Comme je l'ai dans la première partie de ma petite série sur les clients HTTP employées par poire, je vais maintenant à la 2e Une partie de mon attention sur le Zend Framework adressée. Ici aussi, besoin de 2 paquets pour terminer la tâche (cf. partie 1). Le paquet est comme le paquet PEAR Zend_Http Http_Request2 à une pure communication HTTP approprié. Avec Zend_Dom peut démonter le HTML reçu. Pourrait ressembler à un moyen de résoudre le problème de cette façon: Le code parle de lui-même, je ne vais pas l'expliquer à ce point autant de détails que dans la première partie. La différence est dans l'analyse de HTML. La méthode query () (lignes 18 et 31) prévoit que n'est pas un tableau, mais plutôt un objet de classe Zend_Dom_Query_Result dos. Depuis cette classe implémente Comptable et Iterator fois l'interface, les résultats peuvent être passés à la demande avec une boucle foreach. Chaque match est unique figurant sur un objet de la classe DOMElement. Conclusion: Zend propose Zend_Dom Zend_Http et un bon client HTTP. Si vous utilisez d'autres classes déjà dans son projet de la Zend Framework, cette approche est recommandée. Perspectives: Dans la partie 3 je quitte le monde PHP et imaginer avec HttpUnit un client très confortable et riche en fonctionnalités HTTP pour Java.
gklinkmann écrit par \ \ tags: cadres , php , web