Symfony, Propel et Creole VS le fulltext search.

ViPHP
ViPHP | 4039 Messages

03 juin 2008, 23:40

Ciao a tutti !

Bon, alors, oui je sais, tout le monde à bien le droit d'un jour se mettre à symfony, non ? (toutes mes excuses Hywan..) :wink:

Mais bon, plusieurs interrogations me taraudent, et pendant que les réponses viennent à moi comme dans un rêve fou plein d'éléphpants bleus, une principale me tient en éveil:

Quid de la recherche fulltext la dedans ("la" étant la symbiose propel-creole)?

Dans mysql, il faut définir les champs fulltext, et par la suite il faut utiliser la syntaxe match.. against.
Pour sqlite, il faut utiliser libfts, créer une table spéciale en fts3, et utiliser une autre syntaxe. Les autres ont chacun leur propre sauce, j'imagine.

Alors, j'ai bien lu la doc qui parle de portabilité, d'orm dans toutes les directions tellement que j'en pleure que ça a l'air beau, mais est-ce qu'ils supportent aussi le fulltext ? Si c'est le cas, je fais une révérence et un pas de danse, puisque ça m'a l'air dur (sqlite nécessiterait de recréer toute la DB..), et dans le cas contraire, ma fois il faudra bien passer à travers propel et creole pour se farcir du bon SQL d'antan.. mais j'aimerais bien savoir, pour être fixé.

(ps: je suis un peu fatigué, d'ou le ton peu maitrisé et volage. :wink: )
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

ViPHP
ViPHP | 2287 Messages

04 juin 2008, 01:19

Réponse n°2 avec propel apparemment, c'est non : http://propel.phpdb.org/trac/ticket/275#comment:9
En revanche aucune idée pour doctrine ;-)
if(!@work()){ Nespresso(); } else { what(); }
______________________________

ViPHP
ViPHP | 4039 Messages

04 juin 2008, 10:17

merci, c'est bien ce que je me disais.. ha ! le doux chant trompeur de la portabilité, mon c.. enfin, un jour peut-être. :wink:
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

04 juin 2008, 10:19

Les couches d'abstraction sont hélas à ce prix.
Il est cependant toujours possible avec Propel de modifier ta base de données à la main (à refaire à chaque reconstruction des tables évidemment) et de faire des requêtes "custom" si tu sais quelles sont les bases de données potentielles.

Eléphant du PHP | 443 Messages

05 juin 2008, 09:19

Salut,
Note aussi que l'indexation fulltext n'est opérationnelle qu'avec MySQL/MyIsam ce qui parait pas très cohérent avec ton choix d'architecture.


Tracker.

ViPHP
ViPHP | 4039 Messages

05 juin 2008, 09:45

Salut,
Note aussi que l'indexation fulltext n'est opérationnelle qu'avec MySQL/MyIsam ce qui parait pas très cohérent avec ton choix d'architecture.


Tracker.
Salut Tracker :wink:

Tu entends quoi par cohérence avec architecture ? Si tu dis que vouloir de la recherche fulltext (ce qui implique sous mysql des tables MyIsam et surtout une syntaxe propre) ET l'abstraction la plus totale, tout à fait, il faut choisir, il n'y a pas d'entre deux (à moins de mélanger les deux), c'est ce que je constatais. Mais si tu parles d'une autre incohérence, alors la je vois pas.. soit parce que j'ai pas encore réfléchi jusque la, soit parce que c'est trop manifeste et évident.

Pour ma part, je pense pencher pour le mix. Il faudra bien faire une classe qui s'accrochera tout seul à la DB pour faire du FTS, mais dans le cas d'un portage, ce sera aussi la seule à modifier/adapter.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Mammouth du PHP | 965 Messages

05 juin 2008, 10:34

<tape l'incruste sur le topic>

j'ai un ptit problème a l'installe de symfony c pas bien méchant :

Après avoir suivis ce tutoriel :http://trac.symfony-project.com/wiki/Do ... ject/trunk

il m'indiquent de lancer :
Ce code décrit deux tables Post et Comment. Sauvegardez-le et, en ligne de commande sous le répertoire sf_sandbox/, saisissez :

$ symfony propel-build-model
mais lancer une ligne de code avec quoi ? nan parceque j'suis sous windows voyez :roll:

et les lignes de code j'pense pas les taper avec des commande dos

comment qu'on fait ?

Eléphant du PHP | 443 Messages

05 juin 2008, 10:47

Partir sur une architecture mappée (propel) qui signifie avoir deux copies des informations (l'enregistrement en bdd et l'objet en mémoire) donc potentiellement décorrélables et conserver un moteur de table ne gérant pas le verrouillage d'enregistrements est, à mon sens, ce qu'il y a de plus casse gueule pour garantir l'intégrité de l'info. Je dirais même que c'est à proscrire totalement.

Maintenant, compte tenu des besoins de traductions, je pense qu'il faut se tourner vers des archies de données où les textes affichables (et indexables) sont stockés et exploités indépendamment par un moteur de traduction (exploitant MyIsam).


Tracker.
Modifié en dernier par Tracker le 05 juin 2008, 10:59, modifié 1 fois.

ViPHP
ViPHP | 4039 Messages

05 juin 2008, 10:59

mais lancer une ligne de code avec quoi ? nan parceque j'suis sous windows voyez :roll:

et les lignes de code j'pense pas les taper avec des commande dos
hé ben si.. faudra juste vérifier que le répertoire de symfony est dans le path de windows. Essaye "symfony -V" dans une fenêtre dos, et tu verras bien :wink:

@Tracker:
je ne suis pas partisan d'une architecture mappée (bien que si les accès à la DB ne se font que à travers celle-ci, ça me devrait être viable), et je comprends aisément les lacunes (risque de désynchronisation entre les deux copies), mon objectif est surtout de voir un peu comment ça marche tout ça.

Si ma classe de FTS se contente de lire, elle ne devrait pas entrainer de désynchronisation, je vais m'y plonger un peu pour avoir des avis plus appuyés :wink: .
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 443 Messages

05 juin 2008, 11:04

Pour l'indexation, jette aussi un oeil côté Zend
http://framework.zend.com/manual/en/zen ... ucene.html

Le problème de désynchronisation est présent partout, avec ou sans orm, dès que tu remontes le contenu d'un enregistrement dans une variable. Donc autant s'appuyer systématiquement sur un outil de mapping qui gère implicitement ou pas la problématique (l'incovénient c'est que dans ton cas propel ne le gère pas).


Tracker.
Modifié en dernier par Tracker le 05 juin 2008, 11:13, modifié 2 fois.

Mammouth du PHP | 965 Messages

05 juin 2008, 11:11

mais lancer une ligne de code avec quoi ? nan parceque j'suis sous windows voyez :roll:

et les lignes de code j'pense pas les taper avec des commande dos
hé ben si.. faudra juste vérifier que le répertoire de symfony est dans le path de windows. Essaye "symfony -V" dans une fenêtre dos, et tu verras bien :wink:
il me retourne un :
'php.exe' n'est pas reconnu en tant que commande interne ou externe, un porgramme éxecutable ou un fichier de commande.
donc il faut que je fasse quoi ? j'ai rien trouver sur les dos en ligne de sympfony ...

Eléphant du PHP | 443 Messages

05 juin 2008, 11:12

Surement ajouter également le dossier php dans le path de windows...

Tracker.

Mammouth du PHP | 965 Messages

05 juin 2008, 11:14

Surement ajouter également le dossier php dans le path de windows...

Tracker.
excuse moi mais je ne comprends pas ce qu'il faut faire :oops:

Eléphant du PHP | 443 Messages

05 juin 2008, 11:17


ViPHP
ViPHP | 4039 Messages

05 juin 2008, 11:22

Pour l'indexation, jette aussi un oeil côté Zend
http://framework.zend.com/manual/en/zen ... ucene.html
Au pire, il reste ça, c'est vrai :wink:
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.