canSnippet
canSnippet copied to clipboard
support many database type.
https://github.com/ademcan/canSnippet/pull/4#issuecomment-32954408
- .gitignore
Tout le site peut maintenant supporter d'autre base de donnée que SQLite.
gg
Si la base de donnée n'existe pas, Factory redirige automatiquement vers install.php.
Limite la redondance de code.
fix: Corrige une erreur lors de l'accès à rss/index.php
J'apprécie le travail énorme effectué, mais je pense que c'est trop tôt pour cette option. J'ai spécialement choisi sqlite pour faciliter l'installation et l'utilisation, en plus de garder à l'esprit la philosophie KISS (4 champs à remplir et hop c'est installé) Par contre je vais vérifier car ton request contient aussi pas mal de corrections, merci.
C'est toi qui voit, aujourd'hui tu as beaucoup de redondance de code. Avec la Factory, tout est limité. De plus, SQLite peut rester ton option par défault. Tu pourrais même décider de ne pas ouvrir la config à d'autre type de BDD mais au vu des différents projets que l'on peut trouver de ci et de là, je pense que ce serait une erreur. Beaucoup de personne ne voudront pas de SQLite (comme moi) car il y a beaucoup d'inconvénient.
- Un fichier par base (il y en a partout)
- Impossible de mettre à jour facilement le schema de la base, ...
Si Mysql et PostgreSQL ne t'interesse pas (pas encore implémenté) il te suffit juste de bloquer le $parameters["db"]["driver"] sur pdo_sqlite et de cette manière ton projet reste ouvert pour une nouvelle solution à l'avenir (ou pour les personnes qui souhaitent utiliser autre chose).
Je suis d'accord avec toi, ce que tu as fait est excellent et c'est clairement une évolution à prendre en compte. Il est vrai que sqlite a des défauts mais pour canSnippet ça me parraît être une très bonne solution. Pour les autres db il faudra les prendre en compte tôt ou tard, mais c'est trop tôt pour moi :) Je ne m'attendai pas à de tels changements du code aussi rapidement, ce qui est une très bonne chose, mais je veux prendre le temps de faire les choses correctement et apprendre en même temps ;) Dèjà que c'est pas encore super facile avec Github...
Pas de soucis, ça ne m'a pas pris longtemps. Je garde ma branche puisque ton projet ne m'intéresse que si je peux déporter le code sur un autre système. Je vais continuer à travailler dessus. Si tu es intéressé par des éléments que je ferai, dis moi.
Bien sûr, n'hésites pas à me faire des PR. J'essaye juste de gérer le projet comme je peux, surtout que je ne m'attendais pas à temps de changements et de travail, merci encore.
C'est normal plus un projet est petit plus sa structure peut vite évolué. Ce sont des changements qui me paraissent nécessaire car si tu développes d'autres fonctionnalités, la tâche de migration sera plus compliqué.
Effectivement, je suis tout à fait d'accord avec toi. Il va falloir que je m'adapte, mais c'est on premier "bébé", première "grande" expérience open source, du coup ça fait... bizarre :)
Vu le travail fait avec @bawaaaaah ton projet n'est plus bancale. Ton "bébé" est en bonne santé ! :)
C'était vraiment l'essentiel, les questions de sécurité me faisait flipper... Tu as des notions beaucoup plus avancées, ce que tu propose est vraiment cool mais me dépasse (ce qui n'est pas une raison pour ne pas l'adopter). Je pense juste avoir besoin d'un peu de temps et apprendre à gérer tout ça. Je ne veux juste pas être dépassé :) Surtout avec une thèse à finir cette année hehe
qu'elle idée d'avoir une thése héhé =) ça me fait pensser que moi aussi je vais devoir en faire une l'année prochaine sniff =(
Bon courage, j'ai pas eu la foie d'aller aussi loin. Ma PR reste à dispo, tu peux me demander si tu veux éclaircir des points.
Je te le fais pas dire... une erreur tout simplement :p C'est ma dernière année normalement, /me content Bon courage bawaaaaah, c'est une très bonne expérience ;)
merci
Hi everybody !
In my code, I have create an autoloader. My PR hasn't already accept, but for these issues, it's necessary I think.
- https://github.com/ademcan/canSnippet/issues/15 => necessary for the futur development
- https://github.com/ademcan/canSnippet/pull/14 => autoload theme and plugin
Then, I see this issue. https://github.com/ademcan/canSnippet/pull/11#issue-26087817
@bawaaaaah propose an SQL Request to change database and tables but with SQLite it's no possible.
@ademcan The autoloader and the database abstraction is necessary. Sorry insist.
i have try my alter table on sqlite and it work perfectly // ALTER TABLE "main"."settings" ADD COLUMN "prismtheme" longtext;
Ok, Can you please explain me how exactly the autoloader works and why is it really necessary ? It should be possible to change the theme even without autoloader, no ?
"Alter table" works for sure, I already tried it many times.
for prism css you have only to put your custom css prism into this following folder "canSnippet/css/prism_theme"
after go to the admin menu interface and you can select the css to load and forsave the actual theme used it is stored into the DB.
for the mod/plugin loader is totaly different non need DB, it load automatically all css and js file into this folder "canSnippet/js/prism_mod_loader" but some of plugin/mod need special class to add for exemple line number plugin need to add line-numbers into the <pre> class. I load a config file who contain a json with the configuration. I look at other plugin for enchance the configuration file
ALTER TABLE Works ! Monday morning…… This SQL request works because you add one column, but in few case, that's impossible. Caution with SQLite.
autoloader must be load for each PHP file. It give the possibility to load all PHP Class and others functionnalities pur PHP. More, no redundancy code, it's really necessary for a project clean.
With Autoloader, We will can load the current theme and the actives plugins.
To response at @bawaaaaah , I think that all parameters (css, plugin, …) must already be recorded into DB.
Ok, I see the idea. However, I think that it should be already feasible with sqlite. We only need to change the information on the "settings" table.
personnaly i prefere limit the database usage as possible but the usage of DB for css whas revel usefull. but for plugin i don't thinks it's suitable
I agree with the autoloader but I am still relunctant for MySQL...
i'm sorry it's not the monday morning but simply the morning, when you say autoloader what autoloader do you think?
@bawaaaaah the principle of a database is to concentrate informations. @ademcan Lock the Factory to use only SQLite and use Factory for limit redundancy code. See my code and see the clean code, without custom code…
@bawaaaaah Yes :) You include autoload.php and this file load all PHP instruction necessary.
J'ai peur que l'on s'embrouille un peu. Je suis en conférence, je vous re-écris ce soir en essayant de mieux comprendre :) On pourra switcher en FR pour certaines discussions...
oui ça sera mieux je serait peut être un peut mieu réveiller (enfin j'espére)