Home
Document sur le site de jmrenouard.fr - Jean
Contents
1. Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts
2. if this gt form validation gt run FALSE this gt load gt view formulaire else this gt load gt view succes 7 gt V F 4 Modification avanc e des param tres de filtrage Il est possible de d finir les r gles de param trage de la validation dans un tableau PHP Cette version utilise ce mod le De m me les r gles de validation sont enrichies en utilisant la cascade de r gles La r gle suivante trim required min_length 5 max_length 12 xss_clean Indique que trim la cha ne va etre r duite des espaces au d but et la fin required indique que la chaine ne peut tre vides apr s r duction min_length 5 indique que la cha ne doit faire au moins 5 caract res max_length 12 indique que la cha ne doit faire au plus 121 caract res xss_clean indique que la cha ne doit tre s curis contre une attaque type XSS config array array tielg Tilogin ae NT gim rules Erimlregurredimin LengeMiollimax lengen L2 ss Clean array field gt password label gt Password rules gt trim required matches passconf md5 array field gt passconf label gt Validation du Password rules gt trim required matehesipassconf mas array field eme ENS SEE EE SE TtErim reguiredlvalid emari this gt form validation gt set rules config 26 Copyright Aucune reproduction m me partielle ne peut tre faite de ce
3. echo lt pre gt print r this gt xmlrpc gt display response echo lt pre gt D V C 3 Gestion des appels entrant au format XML RPC La librairie Code Igniter permet de cr er un web service rapidement en compl ment de votre site Web Il permet de lier vos partenaires votre site et d automatiser certains changes lt php class Xmlrpc server extends Controller function index this gt load gt library xmlrpc this gt load gt library xmlrpcs config functions Ping array function gt Xmlrpc server process this gt xmlrpcs gt initialize config this gt xmlrpcs gt serve function process request parameters request gt output parameters response array array Tu dis gt parameters O0 Je reponds gt Cc est plut t bon signe ETUCE NS return this gt xmlrpc gt send response response 2 gt V D Librairie de gestion d acc s FTP Le protocole FTP est id al pour g rer les transferts de fichier Ce protocole est largement utilise pour les transfert de site Il est donc possible d imaginer un site qui vous permette de d ployer vos configurations et applications chez un h bergeur directement depuis un site d administration 23 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autoris
4. Gestion des erreurs Ea La gestion des erreurs peuvent tre r alis es par programmation et sont en g n ral g r par le framework VI B 1 Les vues associ es aux pages d erreur Il est possible de sp cifier 4 pages sp cifiques d erreur error_404 php pour les pages non trouv es error_db php pour les pages d erreur associ s aux bases de donn es error_php php pour les pages d erreur associ s aux probl mes de code PHP error_general php pour les pages d erreur associ s aux probl mes g n raux VI B 2 M thodes de gestion des erreurs show_error message int status code 500 Sofa Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD show_404 page log_message evel message VI C Appel en ligne de commande Il est possible d crire un client pour vos applications Code Igniter afin d appeler vos m thodes directement sans passer par un navigateur ou un client http VI C 1 Code du client Code Igniter usr bin php lt php Eviter les coupures de timeout set _ time limit 0 Definir une limite de buffer m moire suffissan
5. Peveloppez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD Date de publication 15 d cembre 2010 Derni re mise jour 13 mai 2011 Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD L SINTOAUCTIONE SR En M ne teinte eat at naines nn te anse te aid 4 FA B t du t torial sssrinin a aa a aa aa iaa da A a a a a aea a a a nn deu ed 4 B Architecture logiciel MV Cosseria iaioa RENEA A AAAA AEA AEEA AAR 4 ke V lisation de CodelgpteL e orecssi srera TEE AAA 4 ED Pr feguis technique Sssuoiitisrisnriiunm a a Ma aiaa aaa aa a aaa a a 4 l E R cup ration de la derni re version seen 5 li D marr r dun projet Codelgmiter Serrar dissem NENANA NAAA AAEREN AEA 6 II A Organisation g n rale de Codelgniter sise 6 IEB Point d entr e index Pipsan ana aa aa ea alterne le en inattendu aaa 6 Il C Structure des r pertoires de votre application ss 6 Il C 1 Index html le fichier de s curit ss 6 Il C 2 Structuration en r pertoire sise 6 I D S curisation de l installation de Code Igniter ss 7 I D 1 Param trage Apache pour interdire de listage des r pertoires 7 ll D 2 Retrait des informations inutiles 7 IE Param trage des Urls ss her nn ne de niered r inner ne tetes telle ini a de date o tn es 7 ll E 1 Fo
6. es au framework data this gt input gt xss clean data La seconde technique consiste ajouter le filtrage automaitque dans le ficheir de configuration principale application config config php config global_xss_filtering TRUE 33 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD IX Qualit du code La qualit du code peut tre attribu de nombreux facteurs tel que Architecture du code R gle de nommage et codage Extensibilit des fonctionnalit s Capacit de tester unitairement chaque parie du code Capacit internationaliser l application rapidement IX A Mise en place de tests unitaires pour votre site Il est possible de permettre en place des tests unitaires et ainsi garantir une qualit de code mesurable Afin de charger la librairie des tests unitaires il vous faut ajouter suivante dans votre contr leur this gt load gt library unit_test IX A 1 M thode de production de tests unitaires mu this gt unit gt run l ment test r sultat attendue nom du test La partie r sultat attendue peut tre subs
7. gt email gt message this gt email gt set_alt message this gt email gt clear this gt email gt send this gt email gt attach this gt email gt print_debugger V B 2 Exemple simple d envoi d email list array Jean Marie gt jmrenouard gmail com Sophie gt sophie gmail com Clement gt lt link href mailto clement gmail com gt clement gmail com lt link gt Dh foreach list as prenom gt email this gt email gt clear this gt email gt to email this gt email gt from codeigniter gmail com this gt email gt subject Message l attention de prenom this gt email gt message Bonjour prenom nVous avez gagnez une voiture n apr s avoir r pondu nos 100 questions this gt email gt send 21 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD V B 3 Exemple d envoi d email avec pi ces jointes list array Jean Marie gt jmrenouard gmail com Sophie gt sophie gmail com Clement gt lt link href mailto clement gmail com gt clement gmail com lt li
8. gt library ftp HTML Table Class Cette librairie permet de g n rer des tableaux HTML Chargement this gt load gt library table Image Manipulation Class Cette librairie permet de manipuler des images cr er des vignettes retailler effectuer des rotations et des fusions Chargement this gt load gt library image_lib Input and Security Class Cette librairie permet de g rer le filtrage et la manipulation s curis e des donn es Chargement Automatique Loader Class Cette librairie permet de g rer le chargement des diff rents l ments dans Code Igniter Chargement Automatique Output Class Cette librairie permet de g rer le r sultat final envoy au client Chargement Automatique Pagination Class Cette librairie permet de g rer la pagination et la navigation dans vos pages Chargement this gt load gt library pagination Session Class Cette librairie permet de manipuler et de g rer les sessions Chargement this gt load gt library session Trackback Class Cette librairie permet de g rer et manipuler des retroliens ou trackback Chargement this gt load gt library trackback Template Parser Class Cette librairie permet de supporter un langage simple de template pour vos pages Web Chargement this gt load gt library parser Typography Class Cette librairie permet de g rer la typographie de vos textes Chargement this gt load gt library typography
9. ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD Test Name gt Test de nullite Test Datatype gt String Expected Datatype gt Null Result gt Failed File Name gt C wamp www ci ecommerce system application controllers ecommerce php Line Number gt 37 2 gt Array Test Name gt Test de nombre entier Test Datatype gt Integer Expected Datatype gt int Result gt Passed File Name gt C wamp www ci ecommerce system application controllers ecommerce php Line Number gt 38 IX B Internationalisation de votre site L une des fonctionnalit s les plus difficile et fastidieuse rattraper dans une application est la mise en place de l internationalisation de votre application L internationalisation permet de d finir une langue pour l ensemble des messages de votre application aussi bien pour vos erreurs que pour vos titres et labels Code Igniter offre une classe utilitaire et une librairie permettant de r aliser rapidement cette t che Initialiser d s le commencement d un projet il facile sa maintenance en vitant une passe ou 2 compl te sur votre code afin de modifier les vues pour coller au principe de
10. gt simple query INSERT INTO ARTICLE VALUES if res TRUE echo Requete OK else echo Requete ECHEC V A 3 Ex cution et r cup ration des r sultats au format objet L utilisation la plus courante de votre base de donn es est la consultation et l affichage pour cela il est possible d utiliser les m thodes this gt db gt query et query gt result Les r sultats sont retourn s sous forme d objet query this gt db gt query SELECT FROM ARTICLE if query gt num rows gt 0 foreach query gt result as row echo row gt ID echo row gt LABEL echo row gt PRIXHT else echo Pas d article query gt free result Il est possible de r cup rer l ment par l ment plut t qu en masse les donn es r sultat Voici donc une version permettant de ne pas allouer massivement de la m moire au d but de la boucle for query this gt db gt query SELECT FROM ARTICLE if query gt num rows gt 0 for i 0 i lt query gt num rows i row query gt row i echo row gt ID echo row gt LABEL echo row gt PRIXHT else echo Pas d article query gt free result V A 4 Ex cution et r cup ration des r sultats au format tableau Parfois il est plus pratique pour des raisons de compatibilit de manipuler des tableaux PHP que des objets PHP Code Igniter fournit l ensemble des outils pour manipu
11. lt head gt lt body gt 25 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD lt h3 gt Le formulaire de cr ation de compte a bien t transmis lt h3 gt lt p gt lt php echo anchor formulaire Essayez nouveau gt lt p gt lt body gt lt html gt V F 3 Le contr leur permettant de g rer la validation du formulaire controllers form php Le contr leur est l l ment central de la proc dure de validation Les r gles de validation sont positionn es par la m thode this gt form_validation gt set_rules et la validation est effectu par la m thode this gt form_validation gt run lt php class Form extends Controller function index this gt load gt helper array form url this gt load gt library form validation y this gt form validation gt set rules login Username required this gt form validation gt set rules password Password required this gt form validation gt set rules passconf Password Confirmation required this gt form validation gt set rules email Email required
12. rendu final associ vos donn es IV B Pr sentation des classes utilitaires IV B 1 Pr sentation des classes utilitaires Un classe utilitaire est une classe contenant des fonctions utilitaires pour un domaine particulier de la programmation en d application en PHP et avec Code Igniter IV B 2 Tableau de synth se des classes utilitaires de Code Igniter Nom de la classe utilitaire Array Helper Cette classe utilitaire permet de manipuler des tableaux PHP Fonctions element et ramdom_element Chargement this gt load gt helper array Compatibility Helper Cette classe utilitaire permet de fournir des m thodes de compatibility entre PHP 4 et PHP5 Fonctions file_put_contents fputcsv http_build_query str_ireplace et stripos Chargement this gt load gt helper compatibility Cookie Helper Cette classe utilitaire permet de manipuler des cookies HTTP Fonctions set_cookie get_cookie et delete_cookie Chargement this gt load gt helper cookie Date Helper Cette classe utilitaire permet de manipuler des dates en PHP Fonctions now mdate standard_date local_to_gmt mysql_to_unix unix_to_human human_to_unix timespan days_in_ month timezones et timezone menu Chargement this gt load gt helper date Directory Helper Cette classe utilitaire permet de manipuler des r pertoires Fonction directory_map Chargement this gt load gt help
13. site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d reloppeuts Pr sentation du framework Code Igniter par Jean Marie RENOUARD VI Concepts avanc e de URLS VI A Gestion avanc e des URLS VI A 1 Red finition d URL par configuration Le fichier de configuration application config routes php permet de d finir les contr leurs associ s une URI routel journals blogs routel product num catalog product lookup by id 1 Tous les appels une URI commen ant par journals seront dirig s vers le contr leur blogs Dans le second cas tous les appels une URI commen ant par products un nombre quelconque seront dirig s vers le contr leur catalog et la m thode product _lookup_by_id avec comme param tre le nombre http www monsite com journals http www monsite com journals http www monsite com journals index http www monsite com journals toto http www monsite com products 34 http www monsite com products 5 VI A 2 Red finition d URL par programmation Dans chaque contr leur il est possible de d finir la distribution dans les m thodes par la m thode _remap function remap method if method methode inconnue this gt index else this gt default method VI B
14. this gt xmlrpc gt set_debug TRUE Sthis gt xmlrpc gt display_error this gt xmlrpc gt display_response Sthis gt xmlrpc gt send_error_ message Sthis gt xmlrpc gt send_response V C 2 Gestion des appels un service XML RPC Il est possible de g rer des appels des services distants par XML RPC Id al pour structurer des services au sein d une entreprise et permettre de mettre disponibilit des informations et des outils de traitement de l information Voici donc un exemple de contr leur permettant d interroger un serveur XML RPC 22 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD lt php class Xmlrpc client extends Controller function index this gt load gt helper url server url site url xmlrpc server this gt load gt library xmlrpc this gt xmlrpc gt server http www monsitec rer 80 this gt xmlrpc gt method ping request array Comment vas u this gt xmlrpc gt request request if this gt xmlrpc gt send request echo this gt xmlrpc gt display error else
15. traduire des smileys en image partir de ressources fournies par le projet Code Igniter http codeigniter com download_files smileys zip Fonctions get_clickable smileys smiley_js et parse_smileys Chargement this gt load gt helper smiley Cette classe utilitaire permet de manipuler et g n rer des cha nes de caract res 13 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD Text Helper Typography Helper URL Helper XML Helper Fonctions random_string alternator repeater reduce double slashes trim_slashes reduce _multiples et quotes to_entities Chargement this gt load gt helper string Cette classe utilitaire permet de manipuler du texte Fonctions word_limiter character _limiter ascii to_entities entities_to_ascii word_censor highlight_code highlight_phrase et word_wrap Chargement this gt load gt helper text Cette classe utilitaire permet de g rer la typographie d un texte dans la page Web Fonctions auto_typography et nl2br_except_pre Chargement this gt lo
16. D S curisation de l installation de Code Igniter Il D 1 Param trage Apache pour interdire de listage des r pertoires Il est possible de param trer le serveur Apache par exemple afin de lui interdire explicitement le lister le r pertoire Ajouter un htaccess la racine de votre r pertoire d application avec la directive suivante la base de votre projet Options indexes Il D 2 Retrait des informations inutiles Afin de s curiser votre installation il est imp ratif de retirer l inutile de votre serveur de production Dans le cadre d un projet tel que Code Igniter il est pr f rable de retirer les r pertoires et fichiers suivants Licence txt fichier de licence du produit capable de trahit votre framework en un clic User _ guide il est inutile de laisser le manuel permettant une personne mal intentionn e de disposer de la documentation directement sur le serveur II E Param trage des Urls Il E 1 Format des Urls par d faut Le format des url Code Igniter par d faut est le suivant http www monsite com index com site consultation Le principale d faut est qu il ne cache pas bien la technologie utilis e et il est aussi imp ratif actuellement d avoir des sites avec des Urls g n riques permettant d voluer ou de changer simplement de technologie sans casser la structure hi rarchique du site Cette structuration est importante dans le cadre de r f rencement de site Web car les moteurs de recher
17. Developpez com Club des d reloppeuts Pr sentation du framework Code Igniter par Jean Marie RENOUARD Squery this gt db gt get ARTICLE R cup ration du premiers articles de la base this gt db gt select LABEL gt from ARTICLE gt limit 1 query this gt db gt get R cup ration des 10 premiers labels des articles de moins de 100 euros hors taxes en donnant les moins chers this gt db gt select LABEL gt from ARTICLE gt where PRIXHT lt 100 gt order by PRIXHT ASC gt limit 10 query this gt db gt get V A 8 M thodes disponibles pour l insertion Les m thodes suivantes permettent d ins rer des donn es dans vos bases de donn es this gt db gt insert e Sthis gt db gt set V A 9 Exemples d insertions avec Active Record V A 10 M thodes disponibles pour la mise jour La m thode suivante permet de mettre jour simplement vos donn es this gt db gt update V A 11 Exemples de mises jour avec Active Record V A 12 M thodes disponibles pour la mise jour Les m thodes suivantes permettent de mettre jour simplement vos donn es this gt db gt delete this gt db gt empty_table this gt db gt truncate V A 13 Exemples de mises jour avec Active Record V A 14 M thodes de mise en cache avec Active Record this gt db gt start_cache this gt db gt stop_cache this
18. L impl mentation d Active Record dans Code Igniter est riche et permet de plus de cha ner les appels de m thodes Voici la liste des m thodes permettant par programmation de g n rer une requ te SQL quivalente Sthis gt db gt get e this gt db gt get_where this gt db gt select this gt db gt select_max e this gt db gt select_min Sthis gt db gt select_avg this gt db gt select_sum Sthis gt db gt from e this gt db gt join Sthis gt db gt where this gt db gt or_where e this gt db gt where_in e this gt db gt or_where_in e this gt db gt where_not_in e this gt db gt or where_not_in this gt db gt like e this gt db gt or_like e S this gt db gt not_like e this gt db gt or_ not _like this gt db gt group_by this gt db gt distinct e this gt db gt having e this gt db gt or_having this gt db gt order_by this gt db gt limit this gt db gt count_all_results Sthis gt db gt count_all V A 7 Exemples de lectures avec Active Record R cup ration tous les articles 19 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts
19. UARD IX A 5 Rapport r sultat Tests unitaires Test Name Test de chaine Test Datatype String Expected Datatype Stnng Result Passed File Name C wamp www ci_ecommerce system application controllers ecommerce php Line Number 36 Test Name Test de nullite Test Datatype String Expected Datatype Null Result Failed File Name C wamp www ci_ecommerce system application controllers ecommerce php Line Number 37 Test Name Test de nombre entier Test Datatype Integer Expected Datatype int Result Passed File Name C wamp www ci_ecommerce system application controllers ecommerce php Line Number 38 IX A 6 Exemples de tests unitaires avec rapport brut function testTU this gt load gt library unit test this gt unit gt run ceci est une chaine this gt unit gt run ceci est une chaine this gt unit gt run 5 is string Test de Chaire Tro nuU i Tese de nues tiS intu Vrest de nombre entieri echo lt H1 gt Tests unitaires lt H1 gt echo lt pre gt print r this gt unit gt result echo lt pre gt IX A 7 R sultat brut Tests unitaires Test Name gt Test de chaine Test Datatype gt String Expected Datatype gt String Result gt Passed File Name gt C wamp www ci ecommerce system application controllers ecommerce php Line Number gt 36 1 gt Array 35 Copyright Aucune reproduction m me partielle ne peut tre faite de
20. Unit Testing Class Cette librairie permet de r aliser et ex cuter des tests unitaires Chargement this gt load gt library unit_test URI Class Cette librairie permet de manipuler des URI Chargement Automatique User Agent Class Cette librairie permet de manipuler l ent te User Agent Chargement this gt load gt library user_agent XML RPC Class Cette librairie permet de fournir un service XML au format XML RPC Chargement this gt load gt library xmlrpc Zip Encoding Class Cette librairie permet de manipuler des donn es au format ZIP 15 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD Chargement this gt load gt library zip IV D Chargement automatique de composant Il se peut que vous ayez sans arr t les m mes l ments charger dans votre contr leur this gt load gt model 1 1 this load 1i16rairie this gt load gt helper stchis gt load gt plugin n sthis gt load gt config T schis load gt lang Ore 0 Le Et afin de ne pas surcharger votre contr leur de ses lignes de code il est po
21. ad gt helper typography Cette classe utilitaire permet de manipuler et g rer des URLS Fonctions site_url base_url current_url uri_string index_page anchor anchor_popup mailto safe_mailto auto_link url_title prep_url et redirect Chargement this gt load gt helper url Cette classe utilitaire permet de g rer les caract res r serv s en XML en les convertissant Fonction xml_convert Chargement this gt load gt helper xml z IV C Pr sentation des classes librairie de Code Igniter IV C 1 Pr sentation des librairies Code Igniter Une librairie est une classe sp cifique de Code Igniter permettant de r aliser des t ches complexes dans un domaine particulier de la programmation en d application en PHP et avec Code Igniter Une librairie est un organe plus complexe qu une simple classe utilitaire n cessitant une gestion plus avanc e des tats IV C 2 Tableau de synth se des librairies de Code Igniter Nom de Ta classe uilitaire Benchmarking Class Calendar Class Cart Class Config Class Database Class Email Class Cette librairie permet de r aliser des mesures de temps de traitements de votre application Chargement this gt output gt enable_ profiler TRUE Cette librairie permet de fournir des m thodes de gestion de calendrier Chargement this gt load gt library calendar Cette librairie permet de g rer un cad
22. ag end gt this gt benchmark gt mark tag2 start gt sleep 1 gt this gt benchmark gt mark tag2 end Gr ce ces ajouts de code 2 nouvelles lignes apparaissent au niveau du tableau benchmarks indiquant les temps ex cution pour le tag et tag2 VII C Mise en place de cache Afin d am liorer les performances il est possible pour certaines pages de mettre le r sultat dans un cache Dans ce cas le r sultat ne sera pas recalcul mais directement pris depuis un fichier dans le cache contenant le r sultat de la page La librairie output n cessaire est charg e par d faut Pour activer cette fonctionnalit par page ou m thode de contr leur il faut 3 choses Le nombre de minute de persistance du cache Les droits d criture sur le r pertoire system cache L appel explicite dans le contr leur de la demande de mise en cache Si vous souhaitez mettre en place le cache de page pour une dur e de n secondes voici la ligne a ajout pour cela this gt output gt cache n VII D R alisation des ses propres librairies Il est possible d crire vos propres librairies Le framework Code Igniter vous permets trois choses Cr er vos propres librairies Etendre des librairies existantes Remplacer des librairies existantes Vos librairies doivent tre stock es dans le r pertoire application librairies 31 Copyright Aucune reproduction m me partielle ne peut tre faite
23. ages etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD Introduction Codelgniter est un environnement cadre de d veloppement d application un ensemble d outils permettant de structurer et de construire des sites Web en utilisant PHP Son objectif est de vous permettre de d velopper des projets beaucoup plus rapidement que si vous partiez de z ro en fournissant un ensemble fourni de biblioth ques pour les t ches habituellement n cessaires ainsi que d une interface simple et une structuration logique d acc s ces biblioth ques Codelgniter vous permet de vous concentrer sur votre cr ativit en minimisant la quantit de code n cessaire pour r aliser une t che donn e l A But du tutorial Le but du tutorial est de vous pr senter une framework simple et l ger capable de vous permettre de r aliser un mini site tel qu un site ecommerce rapidement en vous fournissant le cadre de d veloppement favorable une progression rapide alli une structuration id ale de votre projet l B Architecture logiciel MVC L architecture de Codelgniter est bas e sur le patron de conception MVC Il s agit d un patron de conception permettant de s parer le code d acc s aux donn es la pr sentation et le contr le de l ense
24. antes sont affich es afin de d bugger facilement et trouver les source de contention de votre application URL appel e M thode et classe PHP du contr leur Utilisation m moire totale Dur e respective de chacune des tapes tri es par ordre de parution dans le code e Les donn es GET pass es en param tre 30 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeur Pr sentation du framework Code Igniter par Jean Marie RENOUARD Les donn es POST pass es en param tre Les requ tes SQL envoy s vers les bases de donn es VII B Pr sentation de la librairie Benchmarking La librairie Benchmark est charg automatique par Code Igniter et il est donc inutile d invoquer this gt load gt library pour charger la librairie Pour ajouter une ligne de mesure sp cifique pour un bloc de code donn e il faut Placer au d but du bloc this gt benchmark gt mark xxx_start et this gt benchmark gt mark xxx_stop la fin du bloc Cela permettra d ajouter une nesure de performance lab lis xxx VII B 1 Exemple de code this gt benchmark gt mark tag start gt sleep 2 gt this gt benchmark gt mark t
25. ation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeur Pr sentation du framework Code Igniter par Jean Marie RENOUARD V D 1 M thodes disponibles pour g rer vos changes FTP this gt ftp gt connect Sthis gt ftp gt upload e Sthis gt ftp gt rename e Sthis gt ftp gt move e this gt ftp gt delete_file e Sthis gt ftp gt delete_dir Sthis gt ftp gt list_files this gt ftp gt mirror e this gt ftp gt mkdir this gt ftp gt chmod this gt ftp gt close V D 2 Exemples d utilisation de FTP Uploader un fichier this gt load gt library ftp Sconfigl hostname ftp free fr Sconfigl username jmrenouard Sconfigl password XXXXXX this gt ftp gt connect config this gt ftp gt upload site monfichier html public html monfichier html this gt ftp gt close lt u gt Effectuer une copie int grale de repertoire par FTP lt u gt this gt load gt library ftp Sconfigl hostname ftp free fr configl username jmrenouard Sconfigl password XXXXXX this gt ftp gt connect config this gt ftp mirror 3ite public html this gt ftp gt close Lister un repertoire par FTP this gt load gt library ftp Sconfigl hostname tftp fres fr conf
26. che n appr cie pas vraiment le changement d Urls d un contenu quelconque et freine la progression du r f rencement de celui ci Il E 2 Format d Urls plus g n riques L id e est mettre en place le m canisme de r criture d url d Apache permettant de faire dispara tre le nom du script index php et de rendre le site portable souhait vers d autres technologies si le besoin appara t L url pr c dente doit devenir http www monsite com site consultation aTe Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d reloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD Il E 3 Param trage Apache pour la r criture Le fichier htaccess suivant reprend la pr conisation interdisant le listage des r pertoires et y ajoute la r gle de r criture simple permettant le joli formatage des url de votre site en excluant la r criture pour les fichiers suivants Fichier index php en lui m me Les fichiers du r pertoire images Les fichiers du r pertoire css Les fichiers du r pertoire js Le fichier robots txt La racine du site Options indexes RewriteEngine on RewriteCond 1 index phplcss js images robots txt favicon i
27. col RewriteRule index php 1 L Il E 4 Acc s l installation initiale La racine du site est accessible depuis les trois Urls suivantes http www monsite com http www monsite com index php http www monsite com index Il E 5 R sultat de la page principale Welcome to Codelgniter The page vou are loaking at is being generated dynamecalhy by Codeigniter F you would like to edit this page you ll Find amp located at systemiapplicaionviewswelcome_ message php The corresponding controller for this page is found at iyitemapplhiatont ontrollers welcome php iF you are exploring Codelgniber For the very First ime vou should start by reading the User Guide Page rendered in 0 0109 seconds 8 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD III Concepts fondamentaux de Codelgniter III A Architecture globale d une application MVC IIl B Pr sentation d un Contr leur Le contr leur en l organe de contr le du syst me Il a en charge d analyse des demandes clientes et l orchestration des appels aux mod les et aux vues n c
28. de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeur Pr sentation du framework Code Igniter par Jean Marie RENOUARD VII D 1 Cr ation d une librairie Le fichier de la librairie doit commenc par une majuscule Soap php lt php if defined BASEPATH exit No direct script access allowed class Soap function recevoir une req uete_soap function envoyer une requete soap gt Rien de complexe et afin d utiliser votre nouvelle librairie le chargement s effectue par programmation this gt load gt library soap this gt soap gt envoyer une requete soap VII D 2 Extension de librairie existante Pour ceci il suffit de trouver la th matique g n rale de votre librairie de surcharger la classe Pour conna tre le pr fixe de surcharge des librairies fondamentales il faut consulter le param tre suivant dans le fichier de configuration application config config php config subclass prefix MY toutes classes avec un prefixe en MY_ sera considerer comme une extension des librairies fondamentales portent le m me nom ici il s agit d une extension de la classe CI_ Mail de Code Igniter avec l ajout d une fonction annuler _dernier_email class MY Email extends CI Emai
29. des erreurs ventuelles Ces erreurs seront affich es en haut du formulaire et devant le champ ne respectant pas les r gles de validation lt html gt lt head gt lt title gt MON FORMULAIRE lt title gt lt head gt lt body gt lt php echo validation errors gt lt php echo form open form 2 gt lt h5 gt Login lt h5 gt lt php echo form error login gt lt input type text name login value lt php echo set value login gt size 50 gt lt h5 gt Password lt h5 gt lt php echo form error password gt lt input type text name password value lt php echo set value password gt size 50 gt lt h5 gt Validation du Password lt h5 gt lt php echo form error passconf 2 gt lt input type text name passconf value lt php echo set value passconf gt size 50 gt lt h5 gt Adresse Email lt h5 gt lt php echo form error email gt lt input type text name email value lt php echo set value email gt size 50 gt lt div gt lt input type submit value Submit gt lt div gt lt form gt lt body gt lt html gt V F 2 La vue de confirmation de cr ation de compte view succes php Il s agit d une vue simple permettant de construire une page de r sultat indiquant que les r gles ont t respect s et le traitement du formulaire effectu s lt html gt lt head gt lt title gt Mon formulaire lt title gt
30. dy pour site de ecommerce Chargement this gt load gt library cart Cette librairie permet de g rer des fichiers de configuration Chargement Automatique Cette librairie permet de manipuler des donn es dans une base de donn es Chargement this gt load gt library database Cette librairie permet de manipuler et envoyer des emails avec des fonctionnalit s avanc es tel que les pi ces jointes 14 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD Chargement this gt load gt library email Encryption Class Cette librairie permet de manipuler le chiffrage et de d chiffrage de donn es Chargement this gt load gt library encrypt File Uploading Class Cette librairie permet de g rer l upload de fichier depuis le navigateur client Chargement this gt load gt library upload Form Validation Class Cette librairie permet de g rer la validation des formulaires HTML Chargement this gt load gt library form_validation FTP Class Cette librairie permet de g rer des transferts de fichiers via FTP Chargement this gt load
31. e et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD V B 2 Exemple simple d envoi d email seen 21 V B 3 Exemple d envoi d email avec pi ces jointes 22 V C Librairie de cr ation de Web Services 22 V C 1 M thodes disponibles pour g rer vos changes XML RPC 22 V C 2 Gestion des appels un service XML RPC iii 22 V C 3 Gestion des appels entrant au format XML RPC ie 23 V D Librairie de gestion d acces FTP cessisse Terni anan E aA ANEA mentales 23 V D 1 M thodes disponibles pour g rer vos changes FTP 24 V D 2 Exemples d utilisation de FTP inasai naaa aaa kaa aaa aandaa anana 24 V E Librairies de gestion de formulaire sise 24 V E 1 M thodes disponibles pour g rer vos formulaires 24 V E 2 Fonctions de la classe utilitaire seen 25 V F Exemple simple de gestion de la validation de formulaire 25 V F 1 La vue du formulaire view formulaire php ss 25 V F 2 La vue de confirmation de cr ation de compte view succes php 25 V F 3 Le contr leur permettant de g rer la validation d
32. eau de synth se des librairies de Code Igniter 14 IV D Chargement automatique de composant 16 V Pr sentation de quelques librairies utiles 17 V A Librairie de gestion des bases de donn es 17 V A 1 Param trage de l acc s la base de donn es 17 V A 2 Ex cution et validation une requ te SQL iii 17 V A 3 Ex cution et r cup ration des r sultats au format objet 18 V A 4 Ex cution et r cup ration des r sultats au format tableau 18 V A 5 Utilisation d Active Record pour g n rer les changes 19 V A 6 M thodes disponibles pour la lecture 19 V A 7 Exemples de lectures avec Active Record 19 V A 8 M thodes disponibles pour l insertion 20 V A 9 Exemples d insertions avec Active Record 20 V A 10 M thodes disponibles pour la mise jour 20 V A 11 Exemples de mises jour avec Active Record rnat 20 V A 12 M thodes disponibles pour la mise jour 20 V A 13 Exemples de mises jour avec Active Record 20 V A 14 M thodes de mise en cache avec Active Record 20 V A 15 Exemples de mises en cache avec Active Record 21 V B Librairie de gestion des emails 244 2 2820n28ihefenduessenniqenrennttetee demeurent bene dal teen ladane ed ane anse donnent 21 V B 1 M thodes disponibles pour l envoi de messages email 21 9 Copyright Aucune reproduction m me partielle ne peut tre faite de ce sit
33. enmnentnes td ins mana sde dream ant ane d nssas ele d nn ea ne tant ditnn en cat 33 VIII A Fonctionnalit s de s curit de Codelgniter 33 VIII B Activation du filtrage de securit 33 X Qualit du COR her a a aa A aAa a aa leds a a Ea a tease 34 IX A Mise en place de tests unitaires pour votre site 34 IX A 1 M thode de production de tests unitaires 34 IX A 2 G n ration des rapports de tests 34 IX A 3 D sactivation des tests unitaires 34 IX A 4 Exemples de tests unitaires avec rapport format 34 IX A 5 Rapport r sultat nee anne ne a ea a aaaea Melanie nantes etats 35 IX A 6 Exemples de tests unitaires avec rapport brut 35 IXSAST Resultat IDrUt se Aaaa M tee li mit Ras teste 35 IX B Internationalisation de votre site seen 36 IX B 1 lt Fichier de traduction n eaa aiaa aaae ai late dal tea aiaa 36 IX B 2 Exemple de fichier de traduction 36 IX B 3 M thode d utilisation de la classe utilitaire Language 37 IX B 4 Utilisation de l internationalisation en fran ais 37 IX B 5 Utilisation de l internationalisation en fran ais 37 X Aide et SUPPOrL hier dense i iia a ass nen dan ananas et dde dde annee d s rn etienne sat een 38 Xi Liens de l article sent aaea alain a M NO a EN 39 595 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents im
34. entation du framework Code Igniter par Jean Marie RENOUARD VI D 1 Param tres valider en production Expose php Off Display errors Off 29 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD VII Am lioration des performances VII A Mesure des performances Mesurer les performances gr ce Code Igniter est tr s simple Ill suffit d ajouter cette ligne dans votre contr leur pour l activer et la retirer pour la d sactiver this gt output gt enable profiler TRUE D s que la ligne est ajout e des informations suppl mentaires apparaissent en bas de page URI STRING ecommerce index CLAS S M ETH OD acommerceindex r MEMORY USAGE aC 1 655 980 bytes BENCHMARKS Loading Time Base Classes 0 0170 Controller Execution Time Ecommerce Index 0 0466 Total Execution Time 006tl GET DATA No GET data exists FOST DATA No POST data exists DATABASE ecommerce QUERIES 2 0 0007 SELECT l FROM CATECORIE 00007 SELECT l PROH I ARTICLE 1 Les informations suiv
35. epuis la version 2 0 de code Igniter 4 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD Bien qu il ne soit pas n cessaire il est pr f rable d appuyer son application sur une base de donn es permettant de garantir la p rennit des donn es Le langage PHP supporte les bases de donn es suivantes MySQL 4 1 MySQL MS SQL PostgreSQL Oracle SQLite et ODBC Le framework Codelgniter offre ainsi de base le support d acc s ces serveurs de base de donn es l E R cup ration de la derni re version Pour cet article de pr sentation de Codelgniter 2 0 2 nous avons utilis la derni re version de Code Igniter http codeigniter com download php Il est possible de r cup rer EasyPHP pour r aliser la mise en place des exemples EasyPHP5 3 3 est disponible l adresse suivante https sourceforge net projects quickeasyphp files EasyPHP 5 3 3 EasyPHP 5 3 3 setup exe download Pour les environnements Linux les utilitaires Yum Apt get et autres utilitaires d installation sont disponibles afin de vous mettre disposition l ensemble des applications n cessaires D
36. er directory Download Helper Cette classe utilitaire permet de manipuler les ent tes http pour forcer le t l chargement plut t que l affichage de donn es Fonction force_ download 12 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD Email Helper File Helper Form Helper HTML Helper Inflector Helper Language Helper Number Helper Path Helper Security Helper Smiley Helper String Helper Chargement this gt load gt helper downloadi Cette classe utilitaire permet de g rer la validit et l envoi d emails Fonction email Chargement this gt load gt helper email Cette classe utilitaire permet de manipuler des fichiers Fonctions read_file write file delete files get_filenames get_dir file_info get _file_info get mime _by_extension symbolic_permissions et octal_permissions Chargement this gt load gt helper file Cette classe utilitaire permet de g n rer par programmation des formulaires HTML Fonctions form_open form_open_multipart form_hidden form_input form _password form_up
37. essaires la fourniture de la r ponse attendues Il doit aussi effectuer le choix des appels et l ordre de ceci Dans Code Igniter un contr leur est une classe PHP h ritant des propri t s de la clase Controler Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeur Pr sentation du framework Code Igniter par Jean Marie RENOUARD IIl C Pr sentation d un mod le Le Mod le est l organe de r cup ration et de s lection des donn es pertinentes pour r pondre la demande Son r le consiste r cup rer filtrer modifier les donn es afin de fournir un sous ensemble de donn e pertinent pour la r ponse Dans Code Igniter un contr leur est une classe PHP h ritant des propri t s de la clase Model IIl D Pr sentation d une vue La Vue est l organe en charge de produire la pr sentation des r sultats en fonction de donn es qui lui sont fournies Pour cela la vue s appuie g n ralement sur des Template ou mod le de r ponse auquel elle int gre les donn es afin de composer le r sultat final Dans le cas de Code Igniter les templates sont des fichiers PHP contenant du code de g n ration d affichage uniquement I E Premier cas p
38. gt db gt flush_cache 20 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD V A 15 Exemples de mises en cache avec Active Record V B Librairie de gestion des emails La librairie de gestion de mail permet votre application de g rer l envoi d email Le chargement de la librairie est simple S this gt load gt library email Cette librairie offre le support de plusieurs protocoles Mail Mail Sendmail et SMTP afin de mieux s adapter votre environnement La librairie offre l ensemble des fonctionnalit s tels que le support des destinataires en copie CC et en copie cach e BCC Elle permet la d coupage des textes et l envoi au format teste ou HTML Les pi ces jointes peuvent tre ajout s dans vos messages V B 1 M thodes disponibles pour l envoi de messages email Les m thodes suivantes permettent de g rer la cr ation envoi et l analyse de vos message email dans votre application this gt email gt from this gt email gt reply_to this gt email gt to this gt email gt cc this gt email gt bcc this gt email gt subject this
39. gt lang gt line page_title Pour utiliser ce raccourci de syntaxe il faut charger soit dans application config autoload php language dans la partie helper ou ajouter la ligne suivante au d but du contr leur this gt load gt helper Ianguage Le choix du langage se fait par appel la m thode de chargement du bon fichier de traduction this gt lang gt load message french IX B 4 Utilisation de l internationalisation en fran ais function testInt this gt load gt helper language this gt lang gt load message french this gt load gt view entete array titre gt lang title this gt load gt view affichage brut array titre gt lang title contenu gt lang application name this gt load gt view pied this gt load gt helper language IX B 5 Utilisation de l internationalisation en fran ais function testInt this gt load gt helper language this gt lang gt load message english this gt load gt view entete array titre gt lang title this gt load gt view affichage brut array titre gt lang title contenu gt Tang tapplicatron namel 1 Ny this gt load gt view pied 37 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encoure
40. ig username jmrenouard Sconfigl password XXXXXX this gt ftp gt connect config list this gt ftp gt list public html print r list this gt ftp gt close V E Librairies de gestion de formulaire La librairie de validation de formulaire est un outil id al pour vous garantir une gestion simple des formulaires HTML en garantissant la s curit et la validation des param tres pass s dans le formulaire V E 1 M thodes disponibles pour g rer vos formulaires Sthis gt form_validation gt set_rules e this gt form_validation gt run 24 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD this gt form_validation gt set_message V E 2 Fonctions de la classe utilitaire form_error validation_errors set_value set_select set_checkbox set_radio V F Exemple simple de gestion de la validation de formulaire Voici un exemple simple de formulaire de cr ation de compte V F 1 La vue du formulaire view formulaire php La vue formulaire permet de fabriquer une vue prenant en compte et l affichage du formulaire et
41. is Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD Il D marrer d un projet Codelgniter II A Organisation g n rale de Codelgniter L archive du projet est organis en 4 parties distincts Le script principal index php Le fichier de licence de Code Igniter Le r pertoire contenant le manuel d utilisateur Le r pertoire du moteur et de votre application Il B Point d entr e index php Ce script est le point d entr e de votre application et tous les appels passent syst matiquement par ce script Il a pour r le de coordonner les actions sp cifiques de votre projet en les associant au moteur MVC d crits plus loin dans cet article Il faut noter 3 points importants dans votre script Le niveau des affichages d erreurs error reporting E ALL Le r pertoire du moteur Code Igniter system folder system Le r pertoire de votre application application folder application Cela signifie que par d faut il est possible avec Code Igniter de s parer le r pertoire d installation du moteur system_ folder du r pertoire de votre application applica
42. l function My Email parent CI Email function annuler dernier email Le chargement de la nouvelle librairie surcharg se fait de ma m me mani re sans suppl ment this gt load gt library email this gt email gt annuler dernier email 32 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD VIII La s curit VIII A Fonctionnalit s de s curit de Codelgniter La fonction de filtrage de s curit de Code Igniter est invoqu e automatiquement l appel d un contr leur Cette fonction permets de Suppression du tableau global GET car les donn es sont disponibles sous d autre forme dans le contr leur Suppression de toutes les variables globales m me avec le param tre php ini register_globals ON Filtrage des donn es des tableaux _POST et COOKIE en ne permettant que les caract res alphanum riques Fourniture de solution de protection XSS activable e Normalisation des retours la ligne en n VIII B Activation du filtrage de securit Il existe 2 moyens d activer la validation et la protection XSS des donn es pass
43. l internationalisation de Code Igniter IX B 1 Fichier de traduction Un fichier de traduction doit tre plac dans le r pertoire application language french message_lang php Dans le sous r pertoire application language il doit y avoir un r pertoire par langue traduite Chaque fichier de traduction doit tre nomm par xxxx_lang php pour tre pris en compte par le framework Code Igniter IX B 2 Exemple de fichier de traduction Application language french message_lang php lt php lang title Titre pour l internationnalisation de Code Igniter lang application_name Le produit Code Igniter Le Application language english message_lang php lt php langl title Title for Code Igniter internationalisation langl application name the Framework Code Igniter 2 gt 36 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD IX B 3 M thode d utilisation de la classe utilitaire Language lang nom de I element identifiant du formulaire lang nom de I element Elle permette de raccourcir la syntaxe qui ressemble plus this
44. ler des tableaux au lieu des objets query this gt db gt query SELECT FROM ARTICLE if query gt num rows gt 0 foreach query gt result array as row echo Srow ID echo row LABEL echo S row PRIXHT else echo Pas d article query gt free result Il est possible de r cup rer l ment par l ment plut t qu en masse les donn es r sultat 18 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD Voici donc une version permettant de ne pas allouer massivement de la m moire au d but de la boucle for query this gt db gt query SELECT FROM ARTICLE if query gt num rows gt 0 for i 0 i lt query gt num rows Si gt row query gt row array i echo rowl ID echo row LABEL echo Srow PRIXHT else echo Pas d article query gt free result V A 5 Utilisation d Active Record pour g n rer les changes Active Record est un patron de conception permettant de faciliter l criture de requ tes SQL par programmation V A 6 M thodes disponibles pour la lecture
45. load form_textarea form dropdown form _multiselect form_fieldset form_fieldset_close form _checkbox form _radio form_submit form label form_reset form_button form _close form_prep set_value set_select et set_radio Fonctions Chargement this gt load gt helper form Cette classe utilitaire permet de g rer des l ments HTML Fonctions br heading img link_tag nbs ol ul meta et doctype Chargement this gt load gt helper html Cette classe utilitaire permet de modifier des cha nes de caract res Fonctions singular plural camelize underscore et humanize Chargement this gt load gt helper inflector Cette classe utilitaire permet de g rer les tranductions Fonction lang Chargement this gt load gt helper language Cette classe utilitaire permet de traduire des valeurs en octets dans un format lisibles avec unit Fonction byte_format Chargement this gt load gt helper number Cette classe utilitaire permet de r cup rer le chemin absolu d une ressource Fonctions set_realpath Chargement this gt load gt helper path Cette classe utilitaire permet de faciliter la gestion de la s curit au sein de votre application Fonctions xss_clean dohash strip_image _tags et encode_ php_tags Chargement this gt load gt helper security Cette classe utilitaire permet de
46. lt body gt lt html gt IIl E 3 Appel au nouveau contr leur L appel peut tre effectuer sur par 2 URLS distinctes http www monsite com hello http www monsite com hello http www monsite com hello hello http www monsite com hello index Le r sultat est assez simple et va nous permettre de construire rapidement de nouvelle page par simple ajout de contr leur et de vue Hello World sAN Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD IV Concepts fondamentaux suite IV A Pr sentation de l utilisation des mod les Un mod le est un organe permettant de r cup rer filtrer et organiser des donn es au sein d une source de donn es persistantes Dans le cas de votre application il s agit d une classe PHP h ritant de la classe Model Il s agit d une classe contenant des m thodes facilitant la manipulation des donn es applicatives en g n ral et offrant un pont id al entre les donn es et vos objets m tier Votre contr leur se servira de votre mod le afin de r cup rer les objets utiles et r alisera un appel votre Vue afin de produire le
47. mble des actions L article suivant est une tr s bonne introduction ce patron de conception http julien pauli developpez com tutoriels php mvc controleur I C Utilisation de Codelgniter L utilisation principale reste la mise en place d un environnement structurant et simplifiant pour vos r alisations techniques D apr s la documentation officielle Codelgniter est fait pour vous si Vous voulez un cadre de d veloppement avec un faible impact de performance Vous avez besoin de performances lev es Vous avez besoin d une large compatibilit de versions de PHP et de configurations Vous voulez un cadre qui ne n cessitant quasiment aucune configuration pour d marrer Vous voulez un cadre qui ne vous oblige pas utiliser la ligne de commande Vous voulez un cadre qui ne vous oblige pas adh rer des r gles restrictives de codage Vous ne voulez pas tre oblig s d apprendre une langue de template suppl mentaires Vous viter la complexit en favorisant des solutions simples Vous avez besoin d une documentation claire et compl te l D Pr requis techniques Il faut aussi un serveur Apache Http 2 0 ou sup rieure afin de pouvoir utiliser PHP en mode Web Le framework Codelgniter est pr vu pour fonctionner sur une large vari t de version de PHP Le minimum syndical ici et le PHP 5 1 L ensemble des versions sup rieures tant bien sur support es Les versions pr c dentes ne sont plus support s d
48. nk gt D foreach list as prenom gt email this gt email gt clear this gt email gt to email this gt email gt from codeigniter gmail com this gt email gt subject Message l attention de prenom this gt email gt message Bonjour prenom nVous avez gagnez une voiture n apr s avoir r pondu nos 100 questions this gt email gt attach doc logo jpg this gt email gt attach doc questionnaire doc this gt email gt attach doc image billets jpg Sthis gt email gt send gt V C Librairie de cr ation de Web Services Le framework Code Igniter permet de g rer vos propres Web Services via le support du protocole XML RPC II s agit d un protocole simple donc la sp cification se trouve http www xmlrpc com XML RPC est un protocole l ger de Web services bas e sur XML Il offre l avantage de s abstraire des environnements techniques sp cifiques Windows Linux et des probl matiques de transcodages de r sultat et des demandes Il s agit donc d un protocole id al pour lier plusieurs technologies h t rog nes au sein d un syst me d information sans provoquer un risque d incompatibilit entre application V C 1 M thodes disponibles pour g rer vos changes XML RPC this gt xmlrpc gt server Sthis gt xmlrpc gt timeout this gt xmlrpc gt method this gt xmlrpc gt request Sthis gt xmlrpc gt send_request
49. on la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD V Pr sentation de quelques librairies utiles V A Librairie de gestion des bases de donn es V A 1 Param trage de l acc s la base de donn es La configuration de l acc s la base de donn es est r alis e dans le fichier de configuration application configuration database php Il existe une configuration par d faut Sdb default hostname localhost db default username admin Sdbl default password Sdbl default database basededonnees Sdbl l default l dbdriver mysql Sdbl default dbprefix Sdbl default pconnect TRUE dbl default db debug FALSE db default cache on FALSE Sdbl default l cachedir Sdb default char seti utf8 db default dbcollat utf8 general ci Afin de charger la configuration par d faut il suffit d ajouter l appel suivant dans votre code this gt load gt database Le chargement sera effectif et vous pourrez imm diatement utiliser le composant d acc s aux bases de donn es Il est cependant possible de cr er de multiples configurations en ajoutant un nouveau sous ensemble Sdbl autreconfig hostname localhost Sdbl autreconfig username admin Sdbl autrec
50. onfig password Sdbl autreconfig database autrebasededonnees dbl autreconfig dbdriver mysql Sdbl autreconfig l dbprefix Sdbl autreconfig pconnect TRUE dbl autreconfig db debug FALSE dbl autreconfig cache on FALSE dbl autreconfig ll cached Sdbl autreconfig char set utf8 SdbfautrecontigMMdbeoMeEMIENuEEssoeneralecin Afin de charger la nouvelle configuration il suffit d ajouter l appel suivant dans votre code en y pr cisant le nom de la configuration charger this gt load gt database autreconfig Le chargement sera effectif et vous pourrez imm diatement utiliser le composant d acc s aux bases de donn es V A 2 Ex cution et validation une requ te SQL La solution pour ex cuter une requ te SQL sans r cup ration de donn e en dehors du r sultat du bon fonctionnement de la requ te SQL est d utiliser la m thode this gt db gt simple_query Exemple Are Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeur Pr sentation du framework Code Igniter par Jean Marie RENOUARD this gt load gt database autreconfig res this gt db
51. ratique Bonjour le Monde I E 1 Ecrire son premier contr leur Le premier contr leur peut tre d pos dans le r pertoire system application controllers et tre nomm Hello php lt php class Hello extends Controller function Hello parent Controller function index this gt load gt view hello_message End of file hello php Location system application controllers hello php 2 gt Il est conseill fortement de respecter le formalisme du contr leur et des commentaires de pied de page afin de garder votre code homog ne et lisible Le moyen utilis par le contr leur pour associer une vue de votre traitement est r alis par la l appel suivant this gt load gt view hello message I E 2 Ecrire sa premi re vue Le premier contr leur peut tre d pos dans le r pertoire system application views et tre nomm hello_message php lt html gt lt head gt lt title gt HELLO World lt title gt lt head gt lt body gt lt h1 gt Hello World lt h1 gt 10 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeur Pr sentation du framework Code Igniter par Jean Marie RENOUARD
52. rmat des Uris par d faut isesi iaaa a aa aaa aaa aaa 7 Il E 2 Format d Urls plus g n riques see 7 Il E 3 Param trage Apache pour la r criture ses 8 I E 4 Acc s l installation initiale ses 8 I E 5 R sultat de la page principale sise 8 Il Concepts fondamentaux de Codelgniter ss 9 III A Architecture globale d une application MVC iii 9 Ill B Pr sentation d un Contr leur sise 9 III C Pr sentation d un mod le ssl isa a a a aaan edda 10 Ill D Pr sentation d une Vue iiiiiissesseeeeereerrneneeneeeeeeeennesneeeneeeeneennne 10 IIl E Premier cas pratique Bonjour le Monde 1 10 Ill E 1 Ecrire son premier contr leur ses 10 IIE 2 crire sa premi re Vue sernir fera iaa a a ann ann d anne des adaa daaa 10 Ill E 3 Appel au nouveau contr leur seine 11 IV Concepts fondamentaux Suite sussista aa anni ie aa aaa terne eee iena tete ti 12 IV A Pr sentation de l utilisation des mod les 12 IV B Pr sentation des classes utilitaires 12 V B 1 Pr sentation des classes utilitaires 12 IV B 2 Tableau de synth se des classes utilitaires de Code Igniter 12 IV C Pr sentation des classes librairie de Code Igniter 14 V C 1 Pr sentation des librairies Code Igniter nennt 14 IV C 2 Tabl
53. ssible de proc der leur chargement automatique chaque appel Pour cela il faut modifier le fichier application config autoload php contenant l ensemble des l ments pr charger automatiquement Attention car chaque appel l ensemble du codes des l ments pr charger sera lu interpr t et ex cut avant de passer votre application Sautoload libraries array Sautoload helper array Sautoload plugin array Sautoload config array gt Sautoload language array Sautoload model array II suffit d ajouter le nom des l ments charger afin de les voir pris en compte automatiquement dans votre application Par exemple si votre application utilise massivement des bases de donn es et la validation de formulaire ainsi que l envoi d email il est probable que la ligne suivante puisse correspondre votre besoin autoload libraries email array database form validation De m me si votre application n cessite un fichier de configuration suppl mentaire Il suffit d ajout un fichier de configuration dans le r pertoire application config mesconfigs hp et de le charger automatiquement avec Sautoload config array mesconfigs 16 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez sel
54. te ini set memory limit 256M Eviter d utiliser le script depuis un navigateur if isset SERVER REMOTE ADDR die Permission denied Possitionnement de quelques variables define CMD 1 ROOT DIR var www html site retrait du premier param tre le nom du script unset argv 0 Positionnement des parameters pour retrouver le bon controlleur et la benne m thde SERVER REQUEST URI 1 1 implode Sarqgv 7 _SERVER QUERY_STRING SERVER PATH INFO SERVER REQUEST URI Appel au framework include S SROOT DIR index php 2 VI C 2 Exemple d utilisation php ci call php ecommerce index php ci call php xmlrpc client ping VI D Param trage pour la production Il est important de param trer votre php ini en production afin qu il garantisse un minimum de protection Il est conseiller de d sactiver l envoi de l ent te http avec le num ro de version PHP et de d sactiver l affichage des erreurs PHP dans la fen tre de r sultat m me si les pages peuvent tre modifier pour l affichage 28 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d reloppeuts Pr s
55. tion_folder Il C Structure des r pertoires de votre application 11 C 1 Index html le fichier de s curit Pour commencer chaque r pertoire de votre application contient un fichier index html afin d viter que l on puisse lister le contenu de vos r pertoires et en d duire la technologie utilis e Il C 2 Structuration en r pertoire Le r pertoire contient 9 sous r pertoires permettant d organiser chaque partie de votre application Config le r pertoire contenant les fichiers de param trage Controllers le r pertoire contenant le code de l ensemble des contr leurs Error le r pertoire des pages d erreurs par d faut Helpers le r pertoire contenant vos classes utilitaires Hooks le r pertoire contenant vos propres extensions noyau 6 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD Language le r pertoire contenant les fichiers de langage Librairies le r pertoire contenant vos propres librairies Models le r pertoire contenant vos classes d utilisation de vos mod les de donn es Views le r pertoire contenant vos classes d affichage Il
56. titu e par des cha nes r serv es certains tests is_string l l ment test est une cha ne de caract re is_bool l l ment test est un bool en is_true l l ment test est VRAI is_false l l ment test est FAUX is_int l l ment test est un entier is_numeric l l ment test est une valeur num rique is_float l l ment test est une valeur flottante is_double l l ment test est une valeur double is_array l l ment test est un tableau PHP is_null l l ment test est NULL IX A 2 G n ration des rapports de tests IX A 3 D sactivation des tests unitaires IX A 4 Exemples de tests unitaires avec rapport format function testTU this gt load gt library unit test this gt unit gt run ceci est une chaine is string Test de chaine this gt unit gt run ceci est une chaine is null Test de nullite this gt unit gt run 5 is int Test de nombre entier echo lt H1 gt Tests unitaires lt H1 gt echo this gt unit gt report 34 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENO
57. u formulaire controllers form php 26 V F 4 Modification avanc e des param tres de filtrage 26 VI Concepts avanc e de URLS iiiiiiiiieieiiierrerrniieenneeeeseenneneeeeneeeeeeeeeeneenenenennes 27 VIA G stion avanc e des URLS rosoinen eee rien rt aE 27 VI A 1 Red finition d URL par configuration sise 27 VI A 2 Red finition d URL par programmation ses 27 VIB Gestionrdes erre rs siinameessnemennntrrintenetenennmde einan nednetandndtnnnnennennntet tte rien ant trente ne a an ane date 27 VI B 1 Les vues associ es aux pages d erreur sise 27 VI B 2 M thodes de gestion des erreurs eee 27 VI C Appel en ligne de commande sise 28 VI C 1 Code du client Code Igniter srna EEA R AREE TE RE 28 Vl C 2 Exemple d Utilisation ona aa aaa aaaea aa iaaa a aaia 28 VI D Param trage pour la production sise 28 VI D 1 Param tres valider en production 29 VII Am lioration des performances eee 30 VIFA Mesure des p rformanCe Sissonne a a aaa adaa aaa aaa ad 30 VII B Pr sentation de la librairie Benchmarking ss 31 VIEB 1 Exemple d cod ninos a a A aa linnenee tete idees nf aa 31 VII C Mise en place de cache sise 31 VII D R alisation des ses propres librairies 31 VII D 1 Cr ation d une librairie seen 32 VII D 2 Extension de librairie existante 32 VII La S Ccunt eines snrediianendentieneeesnn
58. z selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD X Aide et support Vous trouverez de nombreuse information en fran ais sur les sites http codeigniter fr http codeigniter com Vous pouvez trouver de l aide sur le forum anglophone de Code Igniter l adresse suivante http codeigniter com forums Le forum francophone se trouve l adresse suivante http codeigniter fr ems forums La documentation de r f rence http codeigniter com user_guide est enti rement traduite l adresse suivante http www codeigniter fr user_guide L une des sources les plus compl tes sont le wiki http codeigniter com wiki et le r pertoire Code Igniter ou vous trouverez de nombreuse r f rence vers des sites relatifs Code Igniter e http codeigniterdirectory com 38 Copyright Aucune reproduction m me partielle ne peut tre faite de ce site et de l ensemble de son contenu textes documents images etc sans l autorisation expresse de l auteur Sinon vous encourez selon la loi jusqu 3 ans de prison et jusqu 300 000 E de dommages et int r ts Developpez com Club des d veloppeurs Pr sentation du framework Code Igniter par Jean Marie RENOUARD XI Liens de l article Formation et technologie du Web L article au format PDF 39 Copyright
Download Pdf Manuals
Related Search
Related Contents
Samsung DVD-C550 Verizon DROID RAZR M User Guide (Online) Entwicklungsmaschine Bedienungsanleitung Blend Taq -Plus - 東洋紡ライフサイエンス事業部 TriPaddle User Manual - Equip-Test SYBA Oblanc SHELL200BT Installation Requirements for Conformance to Standards, GFK Rain c。ver Copyright © All rights reserved.
Failed to retrieve file