IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

CSS JS AJAX depuis PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 519
    Par défaut CSS JS AJAX depuis PHP
    Bonjour,

    Je vais bientôt me lancer dans la création d'un nouveau site en PHP avec du CSS, JS et AJAX.

    J'ai déjà réalisé des sites en PHP mais je trouve extrêmement pénible de devoir "switcher" entre les différents fichiers et les modifier.

    Pour cela j'aimerai que tout se fasse par PHP :

    J'ai une fonction, MaFonction par exemple et je voudrais que chaque fonction comporte le CSS, JS, AJAX qui lui correspond afin de pouvoir être modifié rapidement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    private function MaFonction () {
    $CSS = $CSS.'
    .MenuGauche {
    width:350px;
    }
    ';
     
    $JS = $JS.'
    function FonctionJS () {
    alert("bonjour");
    }
    ';
     
    $this->AJAX('FichierAjax.php', 'Code PHP du fichier');
     
     
    CODE DE MA FONCTION ...
     
     
    }
    Je voudrais pouvoir écrire une fonction pour générer les fichiers CSS et JS en venant lire chacune des variables pour l'écrire dans un fichier. Mais le problème c'est que vu qu'elles sont dans une fonction il faut exécuter la fonction pour que la variable soit définie.

    Cette méthode pourrait également me permettre de compresser les fichiers CSS et JS en supprimant automatiquement les retours à la ligne, les tab et les doubles espaces.

    Merci

  2. #2
    Membre émérite Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Par défaut
    Et la question est ?

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 519
    Par défaut
    Si possible, comment écrire une fonction qui vienne récupérer tous les éléments CSS et JS présents dans les fonctions pour ensuite les écrire dans un fichier.

  4. #4
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Regarde un peu tout ce qu'on arrive à faire avec un seul fichier:http://www.developpez.net/forums/d11...p/#post6461950

    Dans la même optique, on peut même mettre les images dans un fichier PHP.
    Mais (car il y a un mais) on ne bénéficie plus du support du header 304 (not modified) généralement émis par Apache. En conséquence, les fichiers sont systématiquement téléchargés, ce qui n'est pas vraiment une bonne chose.
    Encore qu'on puisse le faire manuellement comme expliqué ici: http://alexandre.alapetite.fr/doc-alex/php-http-304/

    Je ne saurais que trop te décourager d'aller dans cette voie mais si tu insiste, voici une ébauche de solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    $css = <<< EOCSS
    * {
    	margin: 0px;
    	padding: 0px;
    }
     
    html {
    	background-color: #ccc;
    }
     
    body {
    	width: 960px;
    	margin: auto;
    	margin-top: 20px;
    	margin-bottom: 20px;
    }
    EOCSS;
     
    $js = <<< EOJS
    alert('hello !');
    EOJS;
     
    function foo () {
    	global $js, $css;
     
    	$js .= 'alert("foo");';
    	$html = '<h1>FOO</h1>';
     
    	return compact('js','css','html');
    }
     
    function bar () {
    	global $js, $css;
     
    	$css .= 'h1 { color: red }';
    	$html = '<h1>BAR</h1>';
     
    	return compact('js','css','html');
    }
     
    // NOW WE START //
    if (isset($_GET['page']) && function_exists($fct = strtolower($_GET['page']))):
     
    extrac( $fct() );
    $js   = preg_replace('~\s{2,}~', ' ', $js);
    $css  = preg_replace('~\s{2,}~', ' ', $css);
    $page = <<< EOFILE
    <html>
    <head>
    	<title>FooBar page</title>
    	<script type="text/javascript">{$js}</script>
    	<style type="text/css">{$css}</style>
    </head>
    <body>
    	{$html}
    </body>
    </html>
    EOFILE;
     
    echo $page;
     
    else:
    header("HTTP/1.0 404 Not Found");
    exit();
    endif;

  5. #5
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 519
    Par défaut
    Merci ça me donne l’idée de faire comme ça :

    Mettre le CSS et le JS entre des balises spécifiques et en commentaires.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
     
    private function MaFonction () {
     
    /*
    <fichier_css>
    .MenuGauche {
       width:325px;
    }
    </fichier_css>
     
    <fichier_js>
    function JS () {
       BlaBla
    }
    </fichier_js>
    */
     
    // Code de la fonction
     
    }
    Pour ensuite créer un script PHP qui viendra parser les balises et écrire leur contenu dans les fichiers CSS et JS si besoin.

    Pour les fichiers AJAX, les fichiers pourront être créés à l’exécution du script et le mettre en commentaire quand celui ci ne change pas.

  6. #6
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Pour ensuite créer un script PHP qui viendra parser les balises et écrire leur contenu dans les fichiers CSS et JS si besoin.
    Que de temps perdu à l’exécution...

    Je tiens à rappeler que ta réticence à vouloir utiliser différents fichiers va affecter les performances de ton application.

    Sur ce salut !

  7. #7
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 519
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    Que de temps perdu à l’exécution...

    Je tiens à rappeler que ta réticence à vouloir utiliser différents fichiers va affecter les performances de ton application.

    Sur ce salut !
    Pourquoi ? J’exécute la création des fichiers qu'une seule fois

  8. #8
    Membre émérite Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Par défaut
    Pour ensuite créer un script PHP qui viendra parser les balises et écrire leur contenu dans les fichiers CSS et JS si besoin.

    Pour les fichiers AJAX, les fichiers pourront être créés à l’exécution du script et le mettre en commentaire quand celui ci ne change pas.
    selon ton code tu vas créer ces fichiers à chaque fois que ta page PHP serra appelé et si ils existent tu comptes faire quoi ? les écraser ou les recréer ou les réutiliser ? dans le dernier cas tu aurai mieux fait de les créer une bonne fois pour toute. En plus tu vas faire mouliner le moteur PHP à chaque fois pour du css et du javascript ? si tu cherches à faire simple sans devoir toujours tout réinventer : utilise un framework (celui de Benjamin Delespierre par exemple... où codeigniter qui assez facile à appréhender...).
    Pour info : AJAX n'est pas un format de fichier ni un fichier...(tu as un script js et un script php à la base...)

  9. #9
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Citation Envoyé par Khleo Voir le message
    Pourquoi ? J’exécute la création des fichiers qu'une seule fois
    Oui, une seule fois à chaque requête HTTP...

    Je vais tenter de clarifier mon propos: vouloir réunir toutes les composantes d'une application web dans un seul fichier PHP peut se concevoir si l'application en question est relativement légère. Prenons l'exemple de la page d'accueil de WAMP, les images, styles et scripts sont tous dans le PHP mais bon, on veut justement éviter d'avoir une structure de fichier qui polluerai le répertoire www et de plus, cette application ne comporte qu'une seule page. Dans ce cas, pourquoi pas.
    Mais faire un site entier de plusieurs pages avec des scripts assez longs (surtout si on utilise des librairies) et du vrai CSS est une entreprise assez risquée.
    De toute façon, le temps que tu "gagnes" à n'avoir qu'un seul fichier à manipuler, tu le perds en scrollant dans un fichier de plusieurs milliers de lignes (je sais de quoi je parle) et en plus tu y perds en performances à tous les niveaux et à mon sens, en productivité également.

    Si tu cherches à améliorer la qualité de ton travail et ta rapidité d'exécution, utilise un environnement de développement approprié comme Eclipse ou Netbeans. Notepad++ n'est pas du tout approprié à la conduite de projets PHP.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 20/03/2011, 11h17
  2. requete ajax sur un serveur web en java depuis php
    Par enzostar dans le forum Général JavaScript
    Réponses: 29
    Dernier message: 29/03/2010, 13h59
  3. Réponses: 0
    Dernier message: 25/02/2009, 13h33
  4. [AJAX] avec 3 listes déroulantes liées php+xhtml+css+javascript+ajax
    Par Invité dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 27/12/2008, 15h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo