Valse

Un framework MVC pour Vala

a marqué ce sujet comme résolu.

GG !

Ca m'épate toujours autant de voir ce boulot :) !

Folaefolc

Merci ! :D

@Wizix et tous ceux qui souhaiterai tester sous Linux : j'ai appris qu'il était impossible d'écouter le port 80 comme ça, donc il faudra que vous utilisiez ce code pour créer votre serveur :

1
2
int port = 8088;
Router r = new Router (port);

Release !

Et maintenant le moment que vous attendiez tous1 : la première release de Valse ! Je vous préviens tout de suite, c'est une alpha, donc plein de bugs sont possibles. Si vous testez et que vous croisez un bug, merci de bien vouloir le reporter ici ou sur Gitlab si vous avez un compte. :)

Comment on teste ?

Alors, tout d'abord il faut télécharger Valse pour votre système :

Ensuite il faut extraire les fichiers qui sont au nombre de trois normalement dans le dossier de votre site. Vous pouvez ensuite écrire votre code tranquillement.

Au moment de compiler, exécutez cette commande :

1
2
3
4
5
# Windows
valac *.vala --vapidir=. --pkg valse --pkg gee-1.0 --pkg libsoup-2.4 -X "-I." -X valse.dll

# Linux
valac *.vala --vapidir=. --pkg valse --pkg gee-1.0 --pkg libsoup-2.4 -X "-I." -X valse.so

Et ensuite vous lancez l'exécutable du serveur qui vient d'être créé, et votre site est disponible sur localhost.

Voilà ! Merci d'avance à tous ceux qui vont prendre la peine de tester. :)

D'ailleurs, je n'ai pas corrigé le dernier bug que je devait résoudre avant de vous permettre de tester, mais il n'est pas bloquant et surtout un peu plus complexe que prévu … :-°


  1. Oupa … 

+0 -0

Bonjour à tous ! Je vous apporte quelques news du projet.

Tout d'abord j'ai passé qelque jour à essayer d'implémenter FastCGI, pour que vous puisiez héberger Valse sur un serveur Nginx ou Apache. Bon, ça n'a pas vraiment marché, mais je vais continuer à travailler dessus pour pouvoir vous proposer ça bientôt.

J'ai aussi un petit peu amélioré Wala, le moteur de rendu. Vous avez désormais la possibilité d'avoir des filtres avec des arguments, ainsi que d'enchaîner les filtres.

Pour utiliser les arguments dans votre filtre, il faudra utiliser le code suivant :

1
2
3
4
5
6
7
8
// on enregistre un filtre qui utilise les arguments
Wala.add_filter ("test-param", (input, args) => {
    string res = input;
    foreach (string arg in args) {
        res += "arg -> " + arg;
    }
    return res;
});
1
{{ mod.truc|test-param :arugument :autre-argument }}

Qui vous donnera, pour mod.truc = "salut", ceci :

1
salut arg -> argument arg -> autre-argument

Un cas d'utilisation un peu plus concret pourrait être d'avoir un filtre markdown (qui parse de Markdown) qui n'afficherait pas les images si il a un argument inline.

La seconde nouveauté, est comme je l'ai annoncée plus tôt, la possibilité d'enchaîner les filtres, de cette façon :

1
{{ mod.truc|upper|safe }}

Ce qui donnera, pour mod.truc = "<h1>Test</h1>" :

1
<H1>TEST</H1>

Voilà, je continue à faire avancer le projet pas à pas. Je ne sais pas si vous avez pu tester (mais je ne crois pas, vu le nombre de retours :p ), mais j'espère que vous continuez à suivre le projet avec intérêt.

+1 -0

C'est long à charger (mais bon, ça c'est les connexions persos). C'est possible de mettre les screenshots ?

le code source est clean, c'est bien !

quelques pistes d'amélioration, purement technique : https://validator.w3.org/unicorn/check?ucn_uri=41.205.73.194%2F&doctype=Inline&charset=%28detect%20automatically%29&ucn_task=conformance# https://gtmetrix.com/reports/41.205.73.194/C59frGdJ quelques "pages blanches" (http://41.205.73.194/doc/getting-started/reference/request), c'est parce que c'est en 404 ? renvoyer dans ce cas un message d'erreur !

+0 -0

Normalement le pages 404 sont envoyées automatiquement par Valse, mais ça doit bugger dans le code du site, pas du framework, il faut que je regardes ça de plus près.

Je pourrais en effet rajouter quelques screens. Et merci pour les liens je vais regarder ça !

Salut, de retour de vacances, je peux me recoller à Vala.
Bravo pour les différentes améliorations de Valse, ça va vraiment dans le bon sens. Petit problème lors de l'exécution de mon serveur :

1
2
3
louis@Krusty:valse_test$ valac *.vala --vapidir=. --pkg valse --pkg gee-1.0 --pkg libsoup-2.4 -X "-I." -X valse.so -o server
louis@Krusty:valse_test$ ./server 
./server: error while loading shared libraries: valse.so: cannot open shared object file: No such file or directory

Pourtant un ls me donne bien tous les fichiers nécessaires dont valse.so :

1
2
demo.wala             main.vala  valse.h   valse.vapi
home-controller.vala  server     valse.so

Merci de ton aide !

EDIT : les dépendances nécessaires sont libsoup2.4-dev et libgee-dev.

+0 -0

Bonjour tout le monde !

Le projet n'est pas mort, on (puisque Wizix et Folaefolc m'ont rejoint dans l'aventure ! Youpi :D ) continue d'avancer.

Tout d'abord, le projet à connu une méga réorganisation. Maintenant tout est bien rangé dans des dossiers, les tests sont séparés du reste (ça va plaire à ThuleMalta qui se plaignait du bazar :p ).

Ensuite, Wizix (il a beauuuuuuccccoouuuppp contribué, attendez vous à voir son nom revenir souvent :p ) a aussi amélioré les infos de débug, vous aurez maintenant des zolis messages qui ressemblent à ça.

1
2
3
4
5
6
7
8
14/Apr/2016 17:30:04
Valse version -dev
Development server available at http://127.0.0.1:8088
2 static files found.
Quit the server with CTRL-C
[14/Apr/2016 17:39:20] Request on "/zds" -> GET text/html 200
[14/Apr/2016 17:39:20] Request on "/style.css" -> GET text/css 200
[14/Apr/2016 17:39:20] Request on "/valse.png" -> GET image/png 200

Il a aussi fixé quelques bugs (par exemple envoyer des 404 quand il faut, plutôt que des pages blanches) et a ajouté de nouveaux filtres. Un exemple ?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<!-- on considère de mod.truc = "Je fait un test." -->
{{ mod.truc|cut :fait :un }}

<!-- on considère de mod.rien = "" -->
{{ mod.rien|default :Rien. }}

<!-- on considère de mod.article = "
super article
avec des paragraphes
" -->
{{ mod.article|breakline }}

<!-- on considère de mod.nb_friends = 42 -->
Vous avez {{ mod.nb_friends }} ami{{ nb_friends|pluralize }}

… donnera …

1
2
3
4
Je test.
Rien.
super article<br />avec des paragraphes
Vous avez 42 amis

Et il y en a quelques autres, mais moins intéréssants ^^ .

Folaefolc quant à lui a améiloré la gestion des erreurs dans le wrapper Sqlite. De mon côté, j'en ai amélioré la syntaxe, avec des méthodes génériques, plutôt que de passer des types en arguments.

Et ce n'est pas fini, je travaille actuellement sur la fameuse boucle {{ for }} dans Wala et Wizix sur les modèles multiples, qui vous permettront d'avoir plusieurs modèles dans une même vue (par exemple un model User qui récupère le nom d'utilisateur et affiche *Connecté en tant que …" et un model Article qui affiche l'article qu'on veut lire).

Comme vous le voyez, Wizix est à fond sur le projet. Vous pouvez lui dire merci je crois. J'espère en tout cas que ces news vous ont plu. Si vous avez des questions/suggestions/remarques, n'hésitez pas, le sujet est là pour ça ! :)

+3 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte