Ticket #1450 (confirmed enhancement)

Opened 15 months ago

Last modified 2 months ago

Savoir si un selecteur pointe vers un fichier existant.

Reported by: flav Owned by:
Priority: normal Milestone: Jelix 2.0.0
Component: jelix:core Version: 1.3.1
Severity: normal Keywords:
Cc: Php version:
Hosting Provider: Blocked By:
Documentation needed: no Blocking:

Description (last modified by laurentj) (diff)

Si l'on fait :

    $selector = jSelectorFactory::create($unSelecteur);
    if(!file_exists($selector->getPath())  {
       ...
    }

On obtient une exception. Ce qui n'est pas très pratique. Une fonction statique jSelectorFactory::exists($nom_du_selecteur) ? Ou quelque chose comme ça pourrait être avantageux.

Change History

Changed 15 months ago by flav

Ceci dit, on peut faire un try{} cautch{}, mais ça fait lourd...

Changed 15 months ago by laurentj

Un cas d'utilisation ? parce qu'à priori, quand on utilise un selecteur, on sait que le fichier existe. Ou alors c'est une erreur de programmation.

Changed 15 months ago by flav

Je suis toujours en train de reproduire le fonctionnement de SPIP, ainsi le principe est de pouvoir appeller une page par l'URI. Chaque page est un squelette. Or si l'on veut atteindre une page qui n'existe une erreur 404 est plus appropriée qu'une erreur 500. Pour ça je dois tester l'existence du fichier. Je pourrais le faire, mais à priori, selon la config, le template peut être dans n'importe quel module, et le module lui même est suceptible de ne pas exister ou de ne pas être installé... Comme jSelector teste déjà toute ces choses là, je suis tenté d'en tirer parti.

Changed 15 months ago by flav

un autre cas d'utilisation : l'objet jelixuser de jauthdb. Voir  http://jelix.org/forums/forum/5-jelix-utilisation-et-developpement/posts/7514-7514-resolu-master_admin-jelix-1-2. Il pourrait être pratique que jelixuser teste la disponibilité de son dao avant de renvoyer une erreur.

Changed 15 months ago by laurentj

Je n'ai pas vraiment compris ton cas d'utilisation de SPIP, d'autant plus que je ne connais pas le fonctionnement de spip.

Pour le cas d'utilisation de jelixuser, le fait de pouvoir tester l'existance du dao ne changerai rien du tout. Il s'agit ici d'un objet, qui est en session. l'autoloader tente de charger la classe qui correspond, (et qui correspond ici à une classe dao). Si le dao n'existe pas, on aura quand même une erreur PHP, parce que PHP n'aura pas la classe -> le chargement de la session echouera quand même, donc erreur etc...

Changed 12 months ago by laurentj

  • component changed from jelix to jelix:core
  • description modified (diff)
  • milestone set to Jelix 2.0

C'est un truc que l'on pourra éventuellement faire dans Jelix 2. ça change trop de comportements.

Changed 2 months ago by laurentj

  • status changed from new to confirmed
Note: See TracTickets for help on using tickets.