17-12-2015, 08:20 AM
Un cache n'est pas reset à chaque page, enfin dans le cas les plus courant, bien au contraire.
Par exemple chez nous le cache reste toujours là, il est écrasé par les nouvelles données quand elles sont modifiées.
Alors un autre exemple :
Puis
Comment tu fais pour savoir que name est pour City ou Country ?
Mais ça c'est qu'une des problématiques.
Ting c'est comme une grosse librairie, puis tu peux tout faire sans et ça demandera beaucoup plus de code, mais c'est faisable.
La preuve Ting a été codé en PHP, donc tu peux recoder l'équivalent en PHP.
Ting gère par exemple aussi l'UnitOfWork.
Si tu fais :
Tu vas me dire que tu peux faire pareil en faisant une requête update avec un getName().
Oui mais non, parce que Ting dans ce cas par exemple :
Ne vas faire qu'une requête en base, car il voit que l'objet au final n'a pas changé entre sa valeur en base et ce que tu lui demande de sauvegarder. Il va enregistrer en base que ce qui a réellement changé, pas la totalité de l'objet.
Par exemple chez nous le cache reste toujours là, il est écrasé par les nouvelles données quand elles sont modifiées.
Alors un autre exemple :
SELECT city.name, city.zipcode, country.id
FROM city
INNER JOIN country ON (country.id = city.country_id)
Puis
SELECT country.name, city.zipcode, country.id
FROM city
INNER JOIN country ON (country.id = city.country_id)
Comment tu fais pour savoir que name est pour City ou Country ?
Mais ça c'est qu'une des problématiques.
Ting c'est comme une grosse librairie, puis tu peux tout faire sans et ça demandera beaucoup plus de code, mais c'est faisable.
La preuve Ting a été codé en PHP, donc tu peux recoder l'équivalent en PHP.
Ting gère par exemple aussi l'UnitOfWork.
Si tu fais :
$city = new City();
$city->setName("Luxiol");
$unitOfWork->pushSave($city);
$unitOfWork->process();
Tu vas me dire que tu peux faire pareil en faisant une requête update avec un getName().
Oui mais non, parce que Ting dans ce cas par exemple :
$city = new City();
$city->setName("Luxiol");
$unitOfWork->pushSave($city);
$unitOfWork->process();
$city->setName("Paris");
$city->setName("Luxiol");
$unitOfWork->pushSave($city);
$unitOfWork->process();
Ne vas faire qu'une requête en base, car il voit que l'objet au final n'a pas changé entre sa valeur en base et ce que tu lui demande de sauvegarder. Il va enregistrer en base que ce qui a réellement changé, pas la totalité de l'objet.