Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1518 connectés 

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  62  63  64  65  66  67
Page Suivante
Auteur Sujet :

Model View Controller (MVC) - Architecture des applications PHP

n°2072869
0x90
Posté le 29-04-2011 à 21:08:46  profilanswer
 

Reprise du message précédent :

koskoz a écrit :

Vous êtes en train de dire que je fou tout le code ci-dessous dans ma vue ? :heink:
 

Code :
  1. public static void generateXML(Long projectId) {
  2.     // Getting all the modules related to the project
  3.     models.Project project = models.Project.find("byId", projectId).first();
  4.     JPAQuery query = project.find("SELECT modules FROM Project" );        
  5.     List<models.Module> modules = query.fetch();
  6.     
  7.     // generating the iGoogle XML file
  8.     try {
  9.         // creating the document
  10.         DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
  11.         DocumentBuilder docBuilder = dbfac.newDocumentBuilder();
  12.         Document doc = docBuilder.newDocument();
  13.  
  14.         //Creating the XML tree
  15.  
  16.         //create the root element and add it to the document
  17.         Element root = doc.createElement("GadgetTabML" );
  18.         root.setAttribute("version", "1.0" );
  19.         doc.appendChild(root);
  20.  
  21.         //create child element, add an attribute, and add to root
  22.         Element tab = doc.createElement("Tab" );
  23.         tab.setAttribute("title", project.name);
  24.         root.appendChild(tab);
  25.         
  26.         // and so on
  27.         Element layout = doc.createElement("Layout" );
  28.         layout.setAttribute("spec", "THREE_COL_LAYOUT_1" );
  29.         tab.appendChild(layout);
  30.  
  31.         Element section = doc.createElement("Section" );
  32.         tab.appendChild(section);
  33.         
  34.         Element module, userPref, modulePrefs;
  35.         // iterate over all the modules
  36.         for (models.Module m : modules) {
  37.              module = doc.createElement("Module" );
  38.              module.setAttribute("type", "RSS" );
  39.              section.appendChild(module);
  40.             
  41.              userPref = doc.createElement("UserPref" );
  42.              userPref.setAttribute("name", "numItems" );
  43.              userPref.setAttribute("value", "3" );
  44.              module.appendChild(userPref);
  45.             
  46.              // TODO only works if the module has an URL field atm
  47.              Class c = m.getClass();
  48.              Field url = c.getField("url" );
  49.             
  50.              modulePrefs = doc.createElement("ModulePrefs" );
  51.              modulePrefs.setAttribute("xmlUrl", url.get(m).toString());
  52.              module.appendChild(modulePrefs);
  53.         }
  54.         
  55.         // generating the XML
  56.         renderXml(doc);
  57.  
  58.     } catch (Exception e) {
  59.         System.out.println(e);
  60.     }
  61. }



 
Euh, j'arrive comme un cheveux sur la soupe, mais pour vous le code il va forcément dans une des 3 classes ? Ça vous arrive jamais de faire des classes utilitaires, du genre disons XmlModelSerializer, qui peut se réutiliser, se tester, avoir des options, etc... OU un XmlSerializer générique, qui doit déjà exister, et auquel il suffit de passer des données bien structurées, sans ces miyyards d'appels de fonction.


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
mood
Publicité
Posté le 29-04-2011 à 21:08:46  profilanswer
 

n°2072878
skeye
Posté le 29-04-2011 à 22:00:17  profilanswer
 

0x90 a écrit :


 
Euh, j'arrive comme un cheveux sur la soupe, mais pour vous le code il va forcément dans une des 3 classes ? Ça vous arrive jamais de faire des classes utilitaires, du genre disons XmlModelSerializer, qui peut se réutiliser, se tester, avoir des options, etc... OU un XmlSerializer générique, qui doit déjà exister, et auquel il suffit de passer des données bien structurées, sans ces miyyards d'appels de fonction.


c'est pas seulement 3 classes, mais 3 groupes de classes, hein...[:joce]
...et bien entendu à-coté de ça tu as des libs ou des classes "utilitaires"...[:romf]


---------------
Can't buy what I want because it's free -
n°2072883
koskoz
They see me trollin they hatin
Posté le 29-04-2011 à 22:16:36  profilanswer
 

J'vois toujours pas comment je vais architecturer le bousin.
Une vue différente par type de XML généré (une pour Netvibes, une pour iGoogle, etc) ?
J'utilise une factory pour aiguiller mes vues ? Si oui où est-ce que je fou la factory ?


---------------
Twitter
n°2072898
MEI
|DarthPingoo(tm)|
Posté le 29-04-2011 à 22:48:40  profilanswer
 

koskoz a écrit :

J'vois toujours pas comment je vais architecturer le bousin.
Une vue différente par type de XML généré (une pour Netvibes, une pour iGoogle, etc) ?
J'utilise une factory pour aiguiller mes vues ? Si oui où est-ce que je fou la factory ?


Si t'as plusieurs vues, dans le contrôleurs, tu choisis seulement la vue qui va bien en fonction du contexte.
 


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°2072905
FlorentG
Posté le 29-04-2011 à 23:51:04  profilanswer
 

0x90 a écrit :

Euh, j'arrive comme un cheveux sur la soupe, mais pour vous le code il va forcément dans une des 3 classes ? Ça vous arrive jamais de faire des classes utilitaires, du genre disons XmlModelSerializer, qui peut se réutiliser, se tester, avoir des options, etc... OU un XmlSerializer générique, qui doit déjà exister, et auquel il suffit de passer des données bien structurées, sans ces miyyards d'appels de fonction.


Effectivement, tu peux avoir des machins à côté. Ça m'arrive d'en faire

n°2073339
theredled
● REC
Posté le 02-05-2011 à 20:25:48  profilanswer
 

MEI a écrit :


Zend Framework et Symfony 2 à priori pour le PHP. L'ASP.NET MVC monte pour ceux qui bien sur aime l'éco-système Microsoft, etc.
 
Après ça dépends ce qu'on cherche exactement, son niveau en développement/développement web, etc.
 
 


 
Ne nous excitons pas, on va d'abord attendre qu'il sorte :o


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°2078972
oxman
xiii
Posté le 29-05-2011 à 19:38:33  profilanswer
 
n°2078990
theredled
● REC
Posté le 29-05-2011 à 23:58:01  profilanswer
 


Nan c'est toujours une bêta [:unicode]


Message édité par theredled le 29-05-2011 à 23:58:06

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°2079012
flo850
moi je
Posté le 30-05-2011 à 09:31:38  profilanswer
 

certain ont ils bénéficié de formatin par sensio labs ? elles valent le cout ?


---------------

n°2083235
caribouuu
Posté le 20-06-2011 à 01:28:32  profilanswer
 

Bonsoir tout le monde (ou bonjour)

 

Est-ce qu'il y en a qui touchent leur bille en zend framework sur ce topic? J'ai un petit soucis et plutôt que de faire un topic je demande direct ici desfois que quelqu'un aurait déjà eu à faire la même chose.

 

En fait j'aimerais afficher des images qui ne sont pas dans le dossier public, mais dans un autre dossier, inaccessible aux internautes.

 

Après une petite recherche sur internet 'ai fait une methode dans mon controller pour lire le fichier et l'envoyer à la vue qui semble correspondre à ce qu'il faudrait faire à priori:
(a chaque fois j'ai mis les url en absolu, c'est juste pour l'essai là)

Code :
  1. public function readpicAction()
  2.     {
  3.         $this->_helper->layout->disableLayout();
  4.         $this->_helper->ViewRenderer->setNoRender();
  5.  
  6.         $file = "http://localhost/monsite/files/pics/15/mini/167126_mini.jpg";
  7.  
  8.         $info = getimagesize($file);
  9.         $mimeType = $info['mime'];
  10.  
  11.         $size = filesize($file);
  12.  
  13.         $data = file_get_contents($file);
  14.  
  15.         $response = $this->getResponse();
  16.         $response->setHeader('Content-Type', $mimeType, true);
  17.         $response->setHeader('Content-Length', $size, true);
  18.         $response->setBody($data);
  19.         $response->sendResponse();
  20.         die();
  21.     }
 

et dans ma vue j'insere le lien de la methode qui lit l'image dans le code html comme ceci:

 
Code :
  1. <img src="localhost/monsite/public/index/readpic" />
 

Ce qui ne fonctionne pas. Maintenant si ça se trouve, c'est pas un problème de zend framework mais une erreur plus fondamentale dans mon PHP tout simplement, je vois pas ce que ça peut être... ou plutôt je ne vois pas trop comment faire...


Message édité par caribouuu le 20-06-2011 à 01:36:27

---------------
Bla (blaa bbla)
mood
Publicité
Posté le 20-06-2011 à 01:28:32  profilanswer
 

n°2083236
caribouuu
Posté le 20-06-2011 à 04:22:58  profilanswer
 

Bon finalement j'ai réussi, il est tard j'ai pas les yeux en face des trous, déjà filesize passait pas avec l'url tel que j'ai mis, http://localhost/etc... il fallait utiliser le realpath, en suite le die() était de trop, je l'avais vu dans un exemple sur le net je l'ai mis sans trop savoir pourquoi il était là, pas très malin de ma part.  Et j'arrivais pas à débuguer mes variables parce que j'avais oublié de faire une vue readpic.phtml, ce que j'ai fait juste pour tester mes variables. Maintenant ça marche :D C'est pas une bonne heure pour coder en fait  [:poutrella]


Message édité par caribouuu le 20-06-2011 à 04:29:59

---------------
Bla (blaa bbla)
n°2083257
MEI
|DarthPingoo(tm)|
Posté le 20-06-2011 à 09:49:23  profilanswer
 

C'est un bon début, mais si tu ne veux pas plomber les perfs, il faut rajouter la gestion des headers HTTP pour la mise en cache dans la navigateur, cf : (et je pense que c'est pas encore parfait, car je ne gère pas le "If-Modified-Since" )
 

Code :
  1. // Preparing HTTP response headers...
  2. header('Content-Type: ' . My_Util_FileUtils::guessMimeType($filename));
  3. $etag = '"' . md5_file($filename) . '"';
  4. header('ETag: ' . $etag);
  5. header('Pragma: public');
  6. $lastModified = gmdate('D, d M Y H:i:s', filemtime($filename)) . ' GMT';
  7. header('Last-Modified: ' . $lastModified);
  8. $expires = 2592000; // 1 month of cache validity.
  9. header('Cache-Control: maxage=' . $expires);
  10. header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT');
  11. // Checking if the cache of the client is up-to-date or not...
  12. $requestHeaders = getallheaders();
  13. if ((array_key_exists('If-None-Match', $requestHeaders) && ($requestHeaders['If-None-Match'] === $etag))) {
  14.     header('HTTP/1.0 304 Not Modified');
  15.     exit;
  16. }
  17. // Sending file if needed...
  18. readfile($filename);
  19. exit;


Message édité par MEI le 20-06-2011 à 09:51:14

---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°2083291
masklinn
í dag viðrar vel til loftárása
Posté le 20-06-2011 à 11:11:50  profilanswer
 

Pourquoi vous servez pas vos fichiers statiques via un serveur HTTP fait pour, genre Apache ou NGinx directement sans passer par PHP [:pingouino dei]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2083299
MEI
|DarthPingoo(tm)|
Posté le 20-06-2011 à 11:23:04  profilanswer
 

masklinn a écrit :

Pourquoi vous servez pas vos fichiers statiques via un serveur HTTP fait pour, genre Apache ou NGinx directement sans passer par PHP [:pingouino dei]


A priori on a ce genre de cas quand c'est un fichier temporaire qui n'est pas dans l'arbo. publique de l'application.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°2083322
flo850
moi je
Posté le 20-06-2011 à 11:48:58  profilanswer
 

masklinn a écrit :

Pourquoi vous servez pas vos fichiers statiques via un serveur HTTP fait pour, genre Apache ou NGinx directement sans passer par PHP [:pingouino dei]


le fichier est statique, mais il peut avoir des meta data issues de la bdd, ne serait ce que les droits d'accès

Message cité 1 fois
Message édité par flo850 le 20-06-2011 à 11:49:06

---------------

n°2083375
caribouuu
Posté le 20-06-2011 à 14:36:20  profilanswer
 

Merci MEI pour la suggestion, c'est l'occasion de faire du cache, c'est une partie de php à laquelle je n'ai jamais touché. Tiens je vais essayer de le faire en utilisant zend_cache tant qu'à faire.
 
Alors en fait ce sont des photos statiques, et non temporaires, ce seront des avatars et des photos des utilisateurs (site communautaire). Si je les met pas dans le public, c'est pour des raisons de sécurité, j'ai cru comprendre que c'était dangereux de laisser un accès direct aux photos aux internautes, et aussi ça empêche de faire des liens qui pointent directement vers les photos .
 
Par contre je pense qu'il me manque un élément théorique pour comprendre la remarque de Masklinn, mon php tourne bien sous apache, comment est-ce que je pourrais faire sans passer par le php tout en ayant mes photos en dehors du dossier public ?


---------------
Bla (blaa bbla)
n°2083394
MEI
|DarthPingoo(tm)|
Posté le 20-06-2011 à 16:15:30  profilanswer
 

caribouuu a écrit :

Merci MEI pour la suggestion, c'est l'occasion de faire du cache, c'est une partie de php à laquelle je n'ai jamais touché. Tiens je vais essayer de le faire en utilisant zend_cache tant qu'à faire.
 
Alors en fait ce sont des photos statiques, et non temporaires, ce seront des avatars et des photos des utilisateurs (site communautaire). Si je les met pas dans le public, c'est pour des raisons de sécurité, j'ai cru comprendre que c'était dangereux de laisser un accès direct aux photos aux internautes, et aussi ça empêche de faire des liens qui pointent directement vers les photos .
 
Par contre je pense qu'il me manque un élément théorique pour comprendre la remarque de Masklinn, mon php tourne bien sous apache, comment est-ce que je pourrais faire sans passer par le php tout en ayant mes photos en dehors du dossier public ?


Tu peux avoir des rules un peu moins drastiques pour le .htaccess.
 
Sinon Zend_Cache ne sert à rien ici si c'est un fichier sur le disque (sauf si ton cache est un Memcached et que t'as de la RAM à perdre pour ça).
Ici je parlais vraiment du mécanisme de cache du browser. Et aussi pouvoir ne pas envoyer le fichier si ce n'est pas utile (et donc économiser de la bande passante de ton côté).


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°2083451
caribouuu
Posté le 20-06-2011 à 19:01:40  profilanswer
 

MEI a écrit :


Tu peux avoir des rules un peu moins drastiques pour le .htaccess.
 
Sinon Zend_Cache ne sert à rien ici si c'est un fichier sur le disque (sauf si ton cache est un Memcached et que t'as de la RAM à perdre pour ça).
Ici je parlais vraiment du mécanisme de cache du browser. Et aussi pouvoir ne pas envoyer le fichier si ce n'est pas utile (et donc économiser de la bande passante de ton côté).


ok, j'ai pas trop regardé ce qu'il faisait encore, j'ai juste vu ça dans ma librairie, faudra que je regarde ça de plus près ;)


---------------
Bla (blaa bbla)
n°2083453
Skateinmar​s
Posté le 20-06-2011 à 19:08:57  profilanswer
 

flo850 a écrit :


le fichier est statique, mais il peut avoir des meta data issues de la bdd, ne serait ce que les droits d'accès


 
X-Accel-Redirect/X-Sendfile


---------------
Feedback HAV
n°2083455
caribouuu
Posté le 20-06-2011 à 19:34:59  profilanswer
 

est-ce que c'est courant qu'il soit dispo sur les configs des hebergeurs le module x-sendfile?


---------------
Bla (blaa bbla)
n°2083653
Dj YeLL
$question = $to_be || !$to_be;
Posté le 21-06-2011 à 15:52:51  profilanswer
 

flo850 a écrit :

certain ont ils bénéficié de formatin par sensio labs ? elles valent le cout ?


 
Same question here.


---------------
Gamertag: CoteBlack YeLL
n°2085517
laaaaaapin
ouai §
Posté le 28-06-2011 à 14:48:23  profilanswer
 

caribouuu a écrit :

Merci MEI pour la suggestion, c'est l'occasion de faire du cache, c'est une partie de php à laquelle je n'ai jamais touché. Tiens je vais essayer de le faire en utilisant zend_cache tant qu'à faire.
 
Alors en fait ce sont des photos statiques, et non temporaires, ce seront des avatars et des photos des utilisateurs (site communautaire). Si je les met pas dans le public, c'est pour des raisons de sécurité, j'ai cru comprendre que c'était dangereux de laisser un accès direct aux photos aux internautes, et aussi ça empêche de faire des liens qui pointent directement vers les photos .
 
Par contre je pense qu'il me manque un élément théorique pour comprendre la remarque de Masklinn, mon php tourne bien sous apache, comment est-ce que je pourrais faire sans passer par le php tout en ayant mes photos en dehors du dossier public ?


Je vois pas trop en quoi c'est dangereux (du moment que tu te fais pas injecter du code dans tes images que les utilisateurs uploadent), à la limite pour limiter le hotlink, et encore, là PHP va se faire chier à faire un readfile à chaque fois..

n°2086742
caribouuu
Posté le 03-07-2011 à 09:46:34  profilanswer
 

laaaaaapin a écrit :


Je vois pas trop en quoi c'est dangereux (du moment que tu te fais pas injecter du code dans tes images que les utilisateurs uploadent), à la limite pour limiter le hotlink, et encore, là PHP va se faire chier à faire un readfile à chaque fois..


Ben c'est pour éviter ça en fait.


---------------
Bla (blaa bbla)
n°2087308
ZePRiNCE
Coucou, tu veux voir ma RTX ?
Posté le 05-07-2011 à 17:43:11  profilanswer
 

Mais ça change rien, tu fais un file get contents de toute façon.

 

Supposons que ton image soit "infectée " alors oui elle n'est pas accessible en public mais sera quand meme affichée ("copiée" en public et toujours infectée donc...) quand on consulte les pages grace a ton script,

 

Dans les deux cas il faut que tu t'assures que l'image soit safe, alors pourquoi ne pas faire un script plus classique qui s'assure que c'est le cas avant de valider l'upload... Et qu'on accède directement aux images "publiquement"

 

Tu gagneras en perf et ce sera plus sécurisé que ton truc qui ne filtre... Rien.

 

Et ça n'a pas grand chose a faire sur ce topic :o


---------------
A VENDRE: Razer Chroma ARGB Controller / Boitier / Support Triple Screen / Ventirad / Carte USB3
n°2116892
koskoz
They see me trollin they hatin
Posté le 16-12-2011 à 08:33:37  profilanswer
 

En cours on est en train de voir du "MVC" pour Java, mais cette pattern me perturbe vraiment et je maintiens que ce n'est pas du MVC :

 

entity -> session bean -> model -> controler -> view

 

Pour mon prof il y a du MVC dans du MVC :

 

entity -> session bean -> view (qui comprend model -> controler -> view).

 

wtf [:pingouino]


Message édité par koskoz le 16-12-2011 à 08:33:44

---------------
Twitter
n°2117085
CyberDenix
Posté le 18-12-2011 à 13:51:03  profilanswer
 

flo850 a écrit :

certain ont ils bénéficié de formatin par sensio labs ? elles valent le cout ?


 

Dj YeLL a écrit :

Same question here.


 
 
Yep, l'un de mes ex-boss m'a inscrit à une formation Sensio Labs à 1600 € sur trois jours (repas light du midi compris).
 
Tu arrives, tu lookes le public qui se présente :
- Des Symfony fanboys (avec un Mac, sinon t'es un looser)
- Des chomeurs en recherche de valorisation de leur CV au pôle emploi
- Des mecs qui viennent du monde Cobol/AS400 et qui bittent rien au PHP
 
Hµg0 H4m0n te file des bouts de code, et au bout des trois jours il t'annonce fièrement que tu vois, avec Symfony, tu peux faire un site e-commerce en trois jours et commencer à engranger de la maille.  :heink:  
 
Outre les mégas aneries que j'ai pu entendre (style SELECT * c'est mal, il vaut mieux faire SELECT tousleschampsdelatable), j'ai été plus que circonspect sur le framework en lui-même. Probablement parce que moi, je suis éduqué, j'ai une certification PHP5 (pas comme son public habituel), et que du coup, mon esprit critique m'empêche d’acquiescer sans réfléchir. Par contre les autres ils étaient super impressionnés et écoutaient la bouche béate... l'auditoire de béotiens idéal ! :non:  
 
Bref, le point positif, c'est que je me suis tapé trois jours de fou rire non stop, obligé de sortir de la salle tellement je rigolais. J'avais pas rigolé comme ça depuis 10 ans. Merci Sensio Labs pour ce moment humoristique !  :lol:

Message cité 3 fois
Message édité par CyberDenix le 18-12-2011 à 13:56:12

---------------
Directeur Technique (CTO)
n°2117087
FlorentG
Posté le 18-12-2011 à 14:05:53  profilanswer
 

CyberDenix a écrit :

Outre les mégas aneries que j'ai pu entendre (style SELECT * c'est mal, il vaut mieux faire SELECT tousleschampsdelatable)


En quoi c'est mal [:petrus75]

n°2117090
masklinn
í dag viðrar vel til loftárása
Posté le 18-12-2011 à 14:27:04  profilanswer
 

FlorentG a écrit :

En quoi c'est mal [:petrus75]


  • T'as quasiment jamais besoin de tous les champs de ta table donc tu récupères (beaucoup) plus de données que ce dont tu as besoin, et si t'as des join ça fait une explosion de caca
  • Ça rend ajouter des champs à une table dangereux: si tu récupères tes valeurs par position et que le nouveau champ n'est pas inséré en dernier tous tes offsets sont pêtés et tu récupères les mauvaises données
  • Ça diminue la quantité de données envoyées ("*" vs la liste de champs) mais ça augmente le travail de la db (il faut qu'elle étende * en une liste de champs)


donc s't'à éviter dans une appli. Et en debug aussi quand t'as des tables merdiques avec 40 colonnes ou des colonnes TEXT.


Message édité par masklinn le 18-12-2011 à 14:27:39

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2117093
FlorentG
Posté le 18-12-2011 à 14:34:11  profilanswer
 

Ah non merde excusez-moi, j'ai compris l'inverse (SELECT * c'est bien, pas l'autre) [:prozac] Je vous rassure, je n'ai pas de SELECT * dans mon logiciel [:bien]

n°2117176
koskoz
They see me trollin they hatin
Posté le 19-12-2011 à 09:04:52  profilanswer
 

Et sinon, pour ma question ? :o


---------------
Twitter
n°2117235
flo850
moi je
Posté le 19-12-2011 à 13:42:25  profilanswer
 

CyberDenix a écrit :


 
 
Yep, l'un de mes ex-boss m'a inscrit à une formation Sensio Labs à 1600 € sur trois jours (repas light du midi compris).
 
Tu arrives, tu lookes le public qui se présente :
- Des Symfony fanboys (avec un Mac, sinon t'es un looser)
- Des chomeurs en recherche de valorisation de leur CV au pôle emploi
- Des mecs qui viennent du monde Cobol/AS400 et qui bittent rien au PHP
 
Hµg0 H4m0n te file des bouts de code, et au bout des trois jours il t'annonce fièrement que tu vois, avec Symfony, tu peux faire un site e-commerce en trois jours et commencer à engranger de la maille.  :heink:  
 
Outre les mégas aneries que j'ai pu entendre (style SELECT * c'est mal, il vaut mieux faire SELECT tousleschampsdelatable), j'ai été plus que circonspect sur le framework en lui-même. Probablement parce que moi, je suis éduqué, j'ai une certification PHP5 (pas comme son public habituel), et que du coup, mon esprit critique m'empêche d’acquiescer sans réfléchir. Par contre les autres ils étaient super impressionnés et écoutaient la bouche béate... l'auditoire de béotiens idéal ! :non:  
 
Bref, le point positif, c'est que je me suis tapé trois jours de fou rire non stop, obligé de sortir de la salle tellement je rigolais. J'avais pas rigolé comme ça depuis 10 ans. Merci Sensio Labs pour ce moment humoristique !  :lol:


 
J'ai finalement suivi la formation aussi ( niveau 2  sur 2 j)  
 
le public était un peu plus diversifié que ça quand même , mais a priori j'étais le seul a déjà gagner ma vie avec php  
les principaux reproches : formation sur un FW non stabilisés et tu le découvres au début de la formation ( après avoir payé ) : c'est sf 2.1 qui aura le support à long terme ( et la version finale de la gestion de la sécurité, et le choix de l'orm supporté)
Le formateur insiste plus sur ce qui a été compliqué a mettre en place ( la génération de fragments et leur mise en cache, l'injection de dépendance) que sur ce qui est compliqué à utiliser : formulaires un peu funky par exemple
Pas de projet type : donc on perd du temps a mettre en place des trucs basiques, temps qui manque pour la partie avancée par la suite. Il aurai mieux valu distribuer un projet type  
 
les avantages : ça m'a quand meme fait faire un bon tour d'horizons des fonctionnalités.  

n°2217425
TheCreator
zwiiiii and then shbrouk tak
Posté le 24-01-2014 à 11:01:30  profilanswer
 

flo850 a écrit :

certain ont ils bénéficié de formatin par sensio labs ? elles valent le cout ?


 
Pas convaincu. C'est vraiment trop court, et le niveau des intervenants très varié qui fait que ça n'avance pas optimalement.
 

CyberDenix a écrit :


 
 
Yep, l'un de mes ex-boss m'a inscrit à une formation Sensio Labs à 1600 € sur trois jours (repas light du midi compris).
 
Bref, le point positif, c'est que je me suis tapé trois jours de fou rire non stop, obligé de sortir de la salle tellement je rigolais. J'avais pas rigolé comme ça depuis 10 ans. Merci Sensio Labs pour ce moment humoristique !  :lol:


 
la mesure hfr  [:clooney16]


---------------
La superstition c'est comme ceux qui réparent les fauteuils, il faut que le bois qu'ils rajoutent soit à peu près comme l'autre bois sinon ça se voit trop.
n°2217429
koskoz
They see me trollin they hatin
Posté le 24-01-2014 à 11:31:32  profilanswer
 

J'aimerai beaucoup avoir plus d'explication sur les mots suivants :
 

Citation :


j'ai été plus que circonspect sur le framework en lui-même. Probablement parce que moi, je suis éduqué, j'ai une certification PHP5 (pas comme son public habituel), et que du coup, mon esprit critique m'empêche d’acquiescer sans réfléchir.


 
[:petrus75]


---------------
Twitter
n°2217431
MEI
|DarthPingoo(tm)|
Posté le 24-01-2014 à 11:48:53  profilanswer
 

Le déterrage de topic. :-P
 
Dans l'absolue Symfony est vraiment bon depuis Symfony 2.1.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°2217435
TheCreator
zwiiiii and then shbrouk tak
Posté le 24-01-2014 à 12:30:25  profilanswer
 

oui mes excuses pour le déterrage :D
 
symfony j'ai pas encore un super feeling, car j'ai totalement débuté le php objet (et sf2 avec) en récupérant un projet énorme et bâclé, autant dire que c'était pas une mince affaire. C'est surtout l'intégration de doctrine qui change la vie je trouve.


---------------
La superstition c'est comme ceux qui réparent les fauteuils, il faut que le bois qu'ils rajoutent soit à peu près comme l'autre bois sinon ça se voit trop.
n°2217438
MEI
|DarthPingoo(tm)|
Posté le 24-01-2014 à 12:51:07  profilanswer
 

J'avais fait du Zend Framework 1 avant donc forcement la plupart des concepts était là.
 
Mais bon pas de Doctrine ici, tout passe par des web services proprio.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°2223451
ZePRiNCE
Coucou, tu veux voir ma RTX ?
Posté le 29-03-2014 à 02:34:07  profilanswer
 

Hello,
Je me suis mis à Symfony 2.
 
J'ai une question à propos des relations bidirectionnelles :
http://fr.openclassrooms.com/infor [...] tionnelles
 

Citation :

Bref, l'important est de se prendre un côté (propriétaire ou inverse, cela n'a pas d'importance), et de l'utiliser. Par utiliser, j'entends que dans le reste du code (contrôleur, service, etc.) il faudra exécuter $article->addCommentaire() qui garde la cohérence entre les deux entités. Il ne faudra pas exécuter $commentaire->setArticle(), car lui ne garde pas la cohérence ! Retenez : on modifie le setter d'un côté, et on utilise ensuite ce setter-là. C'est simple, mais important à respecter.


 
Je m'étais dit que j'allais choisir de mettre le "bon setter" du côté propriétaire de la relation.
Mais ça me semble un peu casse gueule de se satisfaire d'une telle promesse, surtout si le code est repris par d'autres ensuite.
Est-ce que vous auriez une astuce pour empêcher de se tromper ? Proprement ?
 
 
En truc pas propre, j'avais pensé à créer 2 setters du côté A :
- un setEntityNBD() (pour Non Bi Dir)
- un setEntity() qui fait un bête die() / throw une exception, histoire de voir son erreur tout de suite ...  [:gyzmo39]  [:cmove]  
(sa présence est nécessaire pour éviter qu'un setEntity() classique soit régénéré lors d'un doctrine:generate:entities)
 
Et dans le setter du côté B : on call le setEntityNBD de A
On utilise le setEntityNBD nulle part ailleurs, mais comme le nom est suffixé NBD, c'est moins casse gueule.
 
Ca a l'air de marcher en l'état, mais je crains que le A::setEntity() soit utilisée automatiquement par Symfony dans une autre situation, et donc problème :o  
 
Votre avis sur le sujet ?


---------------
A VENDRE: Razer Chroma ARGB Controller / Boitier / Support Triple Screen / Ventirad / Carte USB3
n°2223546
MEI
|DarthPingoo(tm)|
Posté le 31-03-2014 à 11:19:52  profilanswer
 

C'est plus du Doctrine que du Symfony 2 là.
Dès qu'on utilise un ORM, si on ne connais pas son fonctionnement, on risque de se tromper.
 
Après, ici ça semble logique, c'est toujours le conteneur qui maintient la cohérences des liens et pas le contenu (logique car le fonctionnement est toujours valable que l'on soit en relation 1-1, n-1 ou n-n).
 
Mais le mieux c'est de documenter son projet avec des règles de codages et des "recettes" de base dans un Wiki pour que chaque développeurs (surtout les nouveaux arrivants) puisse avoir un endroit de référence pour savoir ce qu'il faut faire et ne pas faire.
 
Et après, bas, tests unitaires de ce que l'on code hein, comme ça pas de doute sur ce que l'on livre. :spamafote:


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  62  63  64  65  66  67
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
Comment créer une architecture propre et fonctionelle...[Débutant] Webdesigner a besoin d'aide pour PHP
script PHP style explorateur windowsPHP et MS SQL
[PHP] envoi d'images qui se dimentionne et s'ajoute direct sur 1pageAfficher le temps utilisé pour générer une page PHP
[PHP] connexion bdd différente selon page locale ou sur serveur ?Afficher une image générée par un script PHP dans un PDF ?
Utilisation d'une variable en Flash depuis PHPErreur de forum PHP
Plus de sujets relatifs à : Model View Controller (MVC) - Architecture des applications PHP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR