mardi 25 mai 2010

[SYMFONY] Les formulaires !

Ce tutoriel est juste génial !! Facile, illustré et très riche !
http://www.symfony-project.org/blog/2008/10/14/new-in-symfony-1-2-make-your-choice

Symfony sur mutualisé (OVH, 1&1 etc) = La solution

Bonjour,
La solution aujourd'hui pour envoyer son site fait sous symfony sur un hébergeur mutualisé.
Pas d'accès SSH, donc pas de lignes de commandes. Il faut cependant avoir les droits minimaux sur le serveur.

Connectez-vous à votre espace de stockage par ftp.
Normalement, vous avez un dossier /www, il faut y mettre le contenu de votre dossier
/web.
Si vous n'avez pas de répertoire www, comme j'ai pu rencontrer le problème sur OVH, il faudra aller dans le panneau d'administration afin de définir le dossier /web (que vous aurez copié de votre projet initial (symfony)) comme répertoire par défaut.
Supprimez le reste

Tous les autres repertoires (apps, config, cache, ...) iront à la racine de votre espace.


Donc vous avez une architecture quasi similaire, peut être à l'exception du dossier web renommé en www


Uploadez votre installation de symfony à la racine, aux cotés des dossiers apps et config.
Je l'ai personnellement installé dans le dossier symfony-1.4.
Maintenant, il faut faire pointer vers ce repertoire.
Cela se passe dans le fichier /config/ProjectConfiguration.class.php ou il faut modifier la ligne require_one '/mon/path/local/vers/symfony';
Vous devez mettre le nouveau chemin. Il commence chez ovh par homez.{3chiffres} Mais vous n'êtes pas censé le connaitre. Pour le savoir, on peut soit générer une erreur en allant sur le site dès maintenant, php va dire qu'il y a une erreur à tel endroit, il faudra alors copier ce chemin, soit en affichant <? echo realpath("index.php"); ?> dans le fichier index.php


cela donne donc quelquechose du style :
require_once
'/homez.123/monnom/symfony-1.4/lib/autoload/sfCoreAutoLoad.class.php';


Ensuite tant qu'on est dans le fichier de conf, si vous avez un dossier www au lieu du fichier web initial, on va surcharger la variable de configuration sf_web_dir qui pointe normalement sur web.

sfConfig::set('sf_web_dir', '/homez.123/monnom/www');

Sinon, on y touche pas.
Il ne reste plus qu'une seule chose à faire pour le coté config, la base de données, c'est plutot facile aussi, l'offre de base permet d'avoir une base de données en général, il faut d'abord la créer dans le manager. Ensuite il vous donne les informations d'accès.


Ouvrez donc le fichier /config/databases.yml
Il faut juste modifier les identifiants de connexion avec les votres...


all:
  doctrine:
    class: sfDoctrineDatabase
    param:
      dsn:      mysql:host=mysql5-xx.perso;dbname=monnomdb
      username:
monnom
      password:
monpassw


SetEnv PHP_VER 5
Options  FollowSymLinks  ExecCGI

<IfModule mod_gzip.c>
mod_gzip_on Off
</IfModule>

<IfModule mod_rewrite.c>  

RewriteEngine On  

# Permettre a IE de reconnaitre le win_png.htc de retraitement des png transparents
#AddType text/x-component .htc  

#RewriteBase /~votredossierbase/  

# we skip all files with .something
RewriteCond %{REQUEST_URI} \.. $
RewriteCond %{REQUEST_URI} !\.html$
RewriteCond %{REQUEST_URI} !\.php
RewriteRule .* - [L]   # we check if the .html version is here (caching)  

# RewriteRule ^$ index.html [QSA] # Suppression du "/" pour un sous-dossier
RewriteRule ^$ /index.html [QSA]
RewriteRule ^([^.] )$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f  

# no, so we redirect to our front web controller
# RewriteRule ^(.*)$ index.html [QSA] # Suppression du "/" pour un sous-dossier
RewriteRule ^(.*)$ /index.php [QSA,L]   # hidden frontoffice controller
# RewriteRule ^(.*)$ index.html [QSA] # Suppression du "/" pour un sous-dossier
RewriteRule ^index\.php/(.*)$ /index.php [QSA,L]

</IfModule>
# big crash from our front web controller
ErrorDocument 500 "<h2>Application error</h2>symfony application failed to start properly








Plutot facile jusqu'à maintenat hein ? Hé bien c'est quasi fini, c'est vraiment trop cool symfony... :)

Maintenant, il faut
copier le repertoire sf de votre installation de symfony /homez.123/monnom/symfony-1.4/data/bin/web/sf/ sans quoi vous n'aurez pas les petites images intégrées du framework notamment utilisé par la debug bar.

Désormais, il ne reste qu'une seule chose à faire, le .htaccess
Créez un fichier dans le dossier
/www que vous appelerez .htaccess et mettez ca dedans :Assurez vous que les dossiers
/cache et /log soient bien vides et que les droits sont bien à 775 ou 777
puis
profitez de votre site.

lundi 17 mai 2010

Les 100 meilleurs scripts JS !

http://www.neurosoftware.ro/wp/elvis/javascript/100-best-javascript-resources/