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

MVC PHP Discussion :

Mise en place de l'URL Rewriting


Sujet :

MVC PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 199
    Par défaut Mise en place de l'URL Rewriting
    Bonjour a tous,

    j'utilise également mamp sous mac os X 10.4
    moi je n'ai pas d'erreur 404 mais j'ai une grosse page blanche, il ne m'affiche jamais les erreurs je ne sais pas pourquoi. php.ini est correct je pense j'ai tout mis en E_ALL

    Bref sinon je pense que c'est l'histoire du mode rewrite pour apache et la je patine je ne sais vraiment pas quoi faire.

    En outre la structure des fichiers sous mac diffère un peu es ce que cela devrait changer le fichier index.php ?

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    As-tu vérifié que tu utilises bien le php.ini que tu penses ? Il a tendance à jouer au fourbe

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 199
    Par défaut
    vivi j'ai vérifié,
    j'ai effectivement 2 fichiers un pour php4 et l'autre pour php5.

    Et je pense qu'ils sont correct.

    Je ne sais vraiment pas comment paramétré mon index.php pour mac
    c'est embétant ce framework avait l'air parfait pour mon petit projet, c'est vraiment une logique MVC que je recherchais.

    En attendant des idées je code tout en php5 pas orienté objet pour m'entrainer un peu

    merci pour votre aide,
    si vous avez d'autre iées ou la même config que moi, n'hésitez pas à me faire signe

  4. #4
    Membre éprouvé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 951
    Par défaut
    pour verifier si ton index.php est bien appelé essaie, a la ligne 1 (apres le <?php) un :
    si tu voit apparaitre :
    ouf ca rassure
    c'est que index.php est bien appelé...

    sinon, une choses a verifier :
    1/ que tu redirige bien toutes les requetes (sauf css, gif...) vers index.php5.
    => pour cela, verifie que ton apache autorise les .htacces a modifier les config (allowOveride all) ou que tu redirige directement dans ton httpd.conf

    pour la redirection, tu peut, dans un premier temps faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteEngine on
    RewriteRule .* index.php
    tu optimisera ensuite afin de ne pas rediriger les fichiers CSS et autres...

    enfin, verifie dans ton httpd.conf que tu as activé le mod rewrite.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 199
    Par défaut
    pour moi là il est 9h30 je regarde tout ca ce soir en rentrant
    en tout cas j'ai hate que ce truc marche pour me lancer corps et ames dedans

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 199
    Par défaut
    bon alors j'ai bien vérifié tout cela :
    dans le php.ini (celui dans le dossier php5) et oui j'ai bien activé php 5 dans MAMP j'ai fais des tests pour etre sur
    Dans le doute voici la section sur les erreurs dans mon fichier
    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; Error handling and logging ;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
     
    ; error_reporting is a bit-field.  Or each number up to get desired error
    ; reporting level
    ; E_ALL             - All errors and warnings
    ; E_ERROR           - fatal run-time errors
    ; E_WARNING         - run-time warnings (non-fatal errors)
    ; E_PARSE           - compile-time parse errors
    ; E_NOTICE          - run-time notices (these are warnings which often result
    ;                     from a bug in your code, but it's possible that it was
    ;                     intentional (e.g., using an uninitialized variable and
    ;                     relying on the fact it's automatically initialized to an
    ;                     empty string)
    ; E_CORE_ERROR      - fatal errors that occur during PHP's initial startup
    ; E_CORE_WARNING    - warnings (non-fatal errors) that occur during PHP's
    ;                     initial startup
    ; E_COMPILE_ERROR   - fatal compile-time errors
    ; E_COMPILE_WARNING - compile-time warnings (non-fatal errors)
    ; E_USER_ERROR      - user-generated error message
    ; E_USER_WARNING    - user-generated warning message
    ; E_USER_NOTICE     - user-generated notice message
    ;
    ; Examples:
    ;
    ;   - Show all errors, except for notices
    ;
    ;error_reporting = E_ALL & ~E_NOTICE
    ;
    ;   - Show only errors
    ;
    ;error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR
    ;
    ;   - Show all errors except for notices
    ;
    error_reporting  =  E_ALL
     
    ; Print out errors (as a part of the output).  For production web sites,
    ; you're strongly encouraged to turn this feature off, and use error logging
    ; instead (see below).  Keeping display_errors enabled on a production web site
    ; may reveal security information to end users, such as file paths on your Web
    ; server, your database schema or other information.
    display_errors = Off
     
    ; Even when display_errors is on, errors that occur during PHP's startup
    ; sequence are not displayed.  It's strongly recommended to keep
    ; display_startup_errors off, except for when debugging.
    display_startup_errors = Off
     
    ; Log errors into a log file (server-specific log, stderr, or error_log (below))
    ; As stated above, you're strongly advised to use error logging in place of
    ; error displaying on production web sites.
    log_errors = On
     
    ; Set maximum length of log_errors. In error_log information about the source is
    ; added. The default is 1024 and 0 allows to not apply any maximum length at all.
    log_errors_max_len = 1024
     
    ; Do not log repeated messages. Repeated errors must occur in same file on same
    ; line until ignore_repeated_source is set true.
    ignore_repeated_errors = Off
     
    ; Ignore source of message when ignoring repeated messages. When this setting 
    ; is On you will not log errors with repeated messages from different files or
    ; sourcelines.
    ignore_repeated_source = Off
     
    ; If this parameter is set to Off, then memory leaks will not be shown (on
    ; stdout or in the log). This has only effect in a debug compile, and if 
    ; error reporting includes E_WARNING in the allowed list
    report_memleaks = On
     
    ; Store the last error/warning message in $php_errormsg (boolean).
    track_errors = Off
     
    ; Disable the inclusion of HTML tags in error messages.
    ;html_errors = Off
     
    ; If html_errors is set On PHP produces clickable error messages that direct 
    ; to a page describing the error or function causing the error in detail.
    ; You can download a copy of the PHP manual from http://www.php.net/docs.php 
    ; and change docref_root to the base URL of your local copy including the
    ; leading '/'. You must also specify the file extension being used including 
    ; the dot.
    ;docref_root = "/phpmanual/"
    ;docref_ext = .html
     
    ; String to output before an error message.
    ;error_prepend_string = "<font color=ff0000>"
     
    ; String to output after an error message.
    ;error_append_string = "</font>"
     
    ; Log errors to specified file.
    error_log = "/Applications/MAMP/logs/php_error.log"
     
    ; Log errors to syslog (Event Log on NT, not valid in Windows 95).
    ;error_log = syslog
    Apres voici mon httpd.conf je suis pas très bon je comprend pas tout je met plusieurs bout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # Each directory to which Apache has access can be configured with respect
    # to which services and features are allowed and/or disabled in that
    # directory (and its subdirectories). 
    #
    # First, we configure the "default" to be a very restrictive set of 
    # features.  
    #
    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride All
    </Directory>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
        AllowOverride All
    Bon voila ca s'était pour les config server, maintenant dans le scripts en lui même (rappel j'utilise un mac os X 10.4 avec mamp)
    tout d'abord voila ma structure de dossier
    zf_tuto/
    ---WEBAPP_DIR/
    ------.htaccess
    ------index.php
    ------PHP-INF/
    ---------ctrl/
    ------------IndexController.php
    ---------views/
    ------------filters/
    ------------helpers/
    ------------scripts/
    ---------------index/
    ------------------index.phtml
    Remarque zf_tuto se trouve dans un dossier site et MAMP pointe vers site dans c'est mon dossier racine pour le server.

    Ensuite et c'est là que ca ce complique. Je ne connais pas tellement l'architecture mac et son système de fichier (comme unix il me semble) mais en tout cas voila mon fichier index.php (celui dans WEBAPP_DIR)
    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
    <?php
     
    die('ouf ca rassure')
     
    // mettre vos constantes ici...
    define("WEBAPP_DIR","./Users/Nicolas/Sites/zf_tuto/");
    define("MODEL_DIR",WEBAPP_DIR."/PHP-INF/");
    define("ROOT_URL","http://localhost:8888/zf_tuto/");
    define("BASE_URL","/zf_tuto/");
    define("ZEND_FRAMEWORK_DIR","./Users/Nicolas/Sites/phplib/Zend_Framework/library/");
     
    define("DB_SERVER","localhost");
    define("DB_PORT","8888");
    define("DB_NAME","CDP_VI");
    define("DB_USER","root");
    define("DB_PASSWORD","root");
    define("DB_TYPE","PDO_MYSQL");
     
    set_include_path(
      ".".PATH_SEPARATOR.
      MODEL_DIR.PATH_SEPARATOR.
      ZEND_FRAMEWORK_DIR.PATH_SEPARATOR.
      get_include_path()
    );
     
    require_once 'Zend/Loader.php';
     
    // Registry init
    Zend_Loader::loadClass("Zend_Registry");
     
    // Controller init
    Zend_Loader::loadClass('Zend_Controller_Front');
    Zend_Loader::loadClass('Zend_Controller_Router_Rewrite');
    $controller = Zend_Controller_Front::getInstance();
     
    $router = new Zend_Controller_Router_Rewrite();
     
    $cmtRoute = new Zend_Controller_Router_Route(
        "comment/:action/:comment",
        array(  "comment"=>null,
                "controller"=>"comment",
                "action"=>"display"
        )
    );
    $router->addRoute("comment",$cmtRoute);
    $controller->setBaseUrl(BASE_URL);
     
    $controller->setRouter($router);
    $controller->setControllerDirectory('PHP-INF/ctrl');
    $controller->throwExceptions(true);
     
    // init viewRenderer
    $view = new Zend_View();
    $viewRenderer = Zend_Controller_Action_HelperBroker::
        getStaticHelper('viewRenderer');
    $viewRenderer->setView($view)
                 ->setViewSuffix('phtml');
     
    // call dispatcher
    $controller->dispatch();
    ?>
    ca marche pas
    Au début j'avais commencé le tuto de développez.com mais je n'y était pas arrivé non plus donc du coup j'ai suivi celui de kitpages mais bon ce n'est pas très concluant non plus. Je pense que mon problème se situe dans les "define" plus je le regarde plus je galère bref si quelqu'un peu m'aider un peu...

    A tout hazard voici mon IndexController.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    require_once 'Zend/Controller/Action.php';
     
    class IndexController extends Zend_Controller_Action {
        public function indexAction() {
            $this->view->testMessage = "Mon message de test";
        }
    }
    ?>
    et index.phtml est juste un fichier tout bête.

    merci de votre aide

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 199
    Par défaut
    [QUOTE=hansaplast]pour verifier si ton index.php est bien appelé essaie, a la ligne 1 (apres le <?php) un :
    si tu voit apparaitre :
    c'est que index.php est bien appelé...

    Hansaplast je vais te tuer, t'y croix ca, je fais un copier coller de ton truc et je fais même pas gaffe et comme un gros boulet j'ai pas vu qu'il n'y avait pas de ; a la fin de ta ligne, du coup ca fait une journée que je cherche pour rien.

    Enfin pour rien j'exagère plus je cherche plus je comprend les configuration server, et la logique du mvc.
    Bref j'ai bien le ouf ca rassure maintenant mais c'est tout
    j'ai rien d'autre alors que normalement il doit m'afficher la page de vue par defaut ...

    bref j'avance mais ca ne marche toujours pas

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 199
    Par défaut
    Bon alors ca avance, j'ai remarqué que la library avait un soucis...
    J'avais un uncaught error je sais plus quoi.
    Du coup il doit y avoir une petite ligne caché dans le httpd.conf qui dit que toutes les library sont planqué dans mon dossier mamp dans un obscur sous dossier.
    Bref j'ai copié collé le framework dans l'endroit ou c'était indiqué dans l'erreur. Et là j'ai eu une autre erreur que voici.
    Donc j'imagine que maintenant ma page pointe vers le bon framework puisque mes affichages d'erreurs ont évolué.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' 
    with message 'Invalid controller specified (o)' in 
    /Applications/MAMP/bin/php5/lib/php/Zend/Controller/Dispatcher/Standard.php:193 
    Stack trace: #0 
    /Applications/MAMP/bin/php5/lib/php/Zend/Controller/Front.php(911): 
    Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), 
    Object(Zend_Controller_Response_Http)) #1 
    /Users/Nicolas/Sites/zf_tuto/WEBAPP_DIR/index.php(63): 
    Zend_Controller_Front->dispatch() #2 {main} thrown in 
    /Applications/MAMP/bin/php5/lib/php/Zend/Controller/Dispatcher/Standard.php 
    on line 193

Discussions similaires

  1. [URL Rewriting] Mise en place sur EasyPHP
    Par guigo dans le forum Apache
    Réponses: 13
    Dernier message: 25/02/2008, 16h07
  2. Url rewriting et mise en place d'un cookie
    Par Olivier Regnier dans le forum Web
    Réponses: 0
    Dernier message: 26/12/2007, 22h36
  3. Réponses: 2
    Dernier message: 02/07/2007, 16h19
  4. [Apache2] Mise en place URL Rewriting
    Par kippix dans le forum Apache
    Réponses: 2
    Dernier message: 21/04/2007, 12h12
  5. Réponses: 1
    Dernier message: 30/03/2007, 16h45

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