OVH Cloud OVH Cloud

La fonction serialize, peut on en abuser?

5 réponses
Avatar
[G2B] Fylefou
Cette merveilleuse fonction qui perrmet de sauver la totalité dun objet
(sous objets et tout), est vraiment utile.
Pour moa qui debute un peu dans la prog objet , je me demande si je peux en
abuser...
Je m'explique , puis-je sauver mon objet ds un champ TEXT d'une bdd au lieu
d'utiliser une serie de tables liées...
bref estce que l'utilisation de cette fonction n'est po trop lourde?
jusqu'ou puis je raisonnablement aller?
on m'a dis de ne l'utiliser que pour les passages d'objet de page a page....
mais la tentation est grande de sauver dans une base , sans devenir fou dans
une structure de base complexe à multiple table....
Merci , vouqs messieurs les oufs de prob et d'objet de bien vouloir me
repondre ;)
fyl

5 réponses

Avatar
Stephane Thomas
[G2B] Fylefou wrote:
Cette merveilleuse fonction qui perrmet de sauver la totalité dun objet
(sous objets et tout), est vraiment utile.
Pour moa qui debute un peu dans la prog objet , je me demande si je peux en
abuser...
Je m'explique , puis-je sauver mon objet ds un champ TEXT d'une bdd au lieu
d'utiliser une serie de tables liées...
bref estce que l'utilisation de cette fonction n'est po trop lourde?
jusqu'ou puis je raisonnablement aller?
on m'a dis de ne l'utiliser que pour les passages d'objet de page a page....
mais la tentation est grande de sauver dans une base , sans devenir fou dans
une structure de base complexe à multiple table....
Merci , vouqs messieurs les oufs de prob et d'objet de bien vouloir me
repondre ;)
fyl


On pourrait même aller plus loin, stocker les objets dans un fichier (un
serialize par ligne) et du coup plus besoin de bdd (pratique si t'as un
hébergeur qui fournit pas de sgbd). Ca n'engage que moi ceci dit.
Après, un sgbd offre d'autres fonctionnalités, notamment le SQL !

Stef

Avatar
Etienne SOBOLE
"[G2B] Fylefou" a écrit dans le message de news:
40f3b054$0$2101$
Cette merveilleuse fonction qui perrmet de sauver la totalité dun objet


Oui !!!

mais la tentation est grande de sauver dans une base , sans devenir fou
dans

une structure de base complexe à multiple table....
Merci , vous messieurs les oufs de prob et d'objet de bien vouloir me
repondre


Oui. c'est ce qu'il faut faire. On pourrait choisir un autre format plus
proche du XML, mais la serialization de PHP est ultra rapide.
donc en user et en abuser et souvent une bonne solution.

Etienne

Avatar
Frederic BISSON
Pour moa qui debute un peu dans la prog objet , je me demande si je peux en
abuser...
Je m'en suis toujours passé jusqu'à présent.


Je m'explique , puis-je sauver mon objet ds un champ TEXT d'une bdd au lieu
d'utiliser une serie de tables liées...
Techniquement, je ne vois pas ce qui t'en empêcherait. Il faut juste que

tu fasses attention que ton objet puisse toujours être enregistré dans
ce champ et qu'il ne sera jamais tronqué.

bref estce que l'utilisation de cette fonction n'est po trop lourde?
jusqu'ou puis je raisonnablement aller?
on m'a dis de ne l'utiliser que pour les passages d'objet de page a page....
Le mécanisme des sessions de PHP ne te permet pas de le faire ?


mais la tentation est grande de sauver dans une base , sans devenir fou
dans une structure de base complexe à multiple table....
Une base de données est complexe dès l'instant où le système

d'information manipulé est complexe. Sur de petites quantités de
données ou des structures peu complexes, un objet permettra de sauver et
restaurer rapidement les informations. Sur de grandes quantités de
données ou des structures plus complexes, la base de données sera plus
rapide (elle est conçu pour ça). Comme l'a souligné Stéphane, cela ne
sert à rien d'utiliser une base de données comme un simple espace de
stockage, autant passer par un fichier.

Il existe des outils Merise (AMC Designer ou PowerAMC) permettant
de simplifier grandement la conception d'une base de données et de s'y
retrouver sans devenir fou.

Si tu nous expliquais dans quel but tu voudrais abuser de serialize, nous
pourrions te proposer des alternatives.

@+

Frédéric

Avatar
SVS
Bonjour,

juste un petit point de détail : sauvegarder dans une base, oui, mais....
pour quoi faire?????

En clair, le vrai pb n'est pas la sauvegarde, mais les requêtes, l'évolution
des supports, du modèle conceptuel, la gestion des connaissances, etc....

Prendre le problème par la technique, c'est risquer d'oublier les êtres
humains qui manipulent les ordinateurs dans le but de réaliser des tâches
bien précises. C'est ce qui a conduit à tous les loupés connus de l'histoire
de l'informatique!!!





"[G2B] Fylefou" a écrit dans le message de
news:40f3b054$0$2101$
Cette merveilleuse fonction qui perrmet de sauver la totalité dun objet
(sous objets et tout), est vraiment utile.
Pour moa qui debute un peu dans la prog objet , je me demande si je peux
en

abuser...
Je m'explique , puis-je sauver mon objet ds un champ TEXT d'une bdd au
lieu

d'utiliser une serie de tables liées...
bref estce que l'utilisation de cette fonction n'est po trop lourde?
jusqu'ou puis je raisonnablement aller?
on m'a dis de ne l'utiliser que pour les passages d'objet de page a
page....

mais la tentation est grande de sauver dans une base , sans devenir fou
dans

une structure de base complexe à multiple table....
Merci , vouqs messieurs les oufs de prob et d'objet de bien vouloir me
repondre ;)
fyl


Avatar
bruno modulix
Cette merveilleuse fonction qui perrmet de sauver la totalité dun objet
(sous objets et tout), est vraiment utile.
Isn't it ?-)


Pour moa qui debute un peu dans la prog objet , je me demande si je peux en
abuser...
Je m'explique , puis-je sauver mon objet ds un champ TEXT d'une bdd au lieu
d'utiliser une serie de tables liées...
Techniquement possible (si l'objet n'est pas trop 'lourd' pour le

champs...) mais AMHA totalement dépourvu d'intérêt. Considère juste ce
point : une relation à plusieurs (exemple bateau : une facture,
composée d'un entête et de lignes)...

Dans le cas d'un graphe d'objets, c'est le 'un' (l'entête) qui possède
une référence sur les 'plusieurs' (les lignes).

class Facture {
var $lignes = Array();
(...)
function ajouterLigne($uneLigne) {
$this->lignes[] = $uneLigne;
}
(...)
}

Si tu serialises l'objet Facture, tu sérialise les lignes avec. Mais ces
factures 'appartiennent' à un client... elle sont donc en fait
serialisées avec le client... Ah, oui mais le client appartient à une
société... bon, tu a compris ? Si tu ne fais pas gaffe, tu te retrouve
avec tout ton graphe d'objets dans un seul champ d'une seule table
(AMHA, ça tiens pas !-)


bref estce que l'utilisation de cette fonction n'est po trop lourde?
jusqu'ou puis je raisonnablement aller?
cf ci-dessus.


on m'a dis de ne l'utiliser que pour les passages d'objet de page a page....
mais la tentation est grande de sauver dans une base , sans devenir fou dans
une structure de base complexe à multiple table....


Si tu a des graphes d'objets simples, relativement indépendants et bien
délimités, et pas de besoins de requêtes complexes, ça peut
éventuellement être une solution - mais dans ce cas, ne t'embête pas
avec un SGBDR, un fichier texte fait très bien l'affaire (attention
quand même aux accès concurrents).


Mes deux centimes
Bruno