Question un peu incongrue !

22 views
Skip to first unread message

Philippe Cordel

unread,
Jan 25, 2017, 5:21:32 AM1/25/17
to Groupe des Eiffelistes Francophones
Bonjour à tous
Existe-t-il une solution pour faire du DBC en php ?

merci d'avance de vos lumières

Philippe

Jocelyn Fiat

unread,
Jan 25, 2017, 6:46:25 AM1/25/17
to groupe_eiffelis...@googlegroups.com
Je n'ai pas vérifié plus que ca, mais ce lien peut aider


Mais quelle idée de vouloir faire du PHP, je recommanderai plutot d'utiliser EiffelWeb reposant sur Eiffel et donc supportant pleinement DbC.

Sinon, oui je sais PHP est toujours bien présent malgré EiffelWeb, alors meme si vous faites du PHP avec du DbC, parlez à vos collègues et contacts d'Eiffel et de son support natif du DbC.

-- Jocelyn

--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "Groupe des Eiffelistes Francophones".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse groupe_eiffelistes_francophones+unsu...@googlegroups.com.
Pour envoyer un message à ce groupe, envoyez un e-mail à l'adresse groupe_eiffelistes_francophones...@googlegroups.com.
Visitez ce groupe à l'adresse https://groups.google.com/group/groupe_eiffelistes_francophones.
Cette discussion peut être lue sur le Web à l'adresse https://groups.google.com/d/msgid/groupe_eiffelistes_francophones/539eb530-e033-4c72-9ad7-5e84f1c22f20%40googlegroups.com.
Pour obtenir davantage d'options, consultez la page https://groups.google.com/d/optout.

Philippe Cordel

unread,
Jan 25, 2017, 6:51:30 AM1/25/17
to groupe_eiffelis...@googlegroups.com

Merci pour cette réponse rapide !

C'est bien pour ça que je disais incongru ! Mais pas facile de convaincre dans ce milieu !
Comptez sur moi pour monter en parallèle une solution à base d'EWF  !
Merci
Philippe

Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse groupe_eiffelistes_francophones+unsubscribe@googlegroups.com.
Pour envoyer un message à ce groupe, envoyez un e-mail à l'adresse groupe_eiffelistes_franco...@googlegroups.com.

Philippe Cordel

unread,
Jan 25, 2017, 10:28:43 AM1/25/17
to Groupe des Eiffelistes Francophones

Revigoré par votre message j’ai décidé de consacrer au moins ½ journée à essayer l’exemple Starbucks (le modèle CRUD étant bien celui que l’on va mettre en œuvre)

Le serveur compile bien et se lance sans erreur

 

Le client se compile et lève une exception lors de la première phase « Create Order »

 

The API function or variable `curl_easy_init' is not available.: API Missing in dynamic library.

 

Dans la doc il est dit de vérifier la présence de la libcurl.dll qui se trouve bien présente chez moi dans C:\Program Files\Eiffel Software\EiffelStudio 17.01 GPL\studio\spec\win64\bin

Par acquis de conscience j’ai rajouté la librairie curl au Projet mais ça ne change rien

 

Que dois-je faire ?

Jocelyn Fiat

unread,
Jan 25, 2017, 11:10:58 AM1/25/17
to groupe_eiffelis...@googlegroups.com
Vous pouvez copier les .dll de libcurl à coté de votre executable.

Ou vous pouvez essayer d'utiliser l'implementation avec EiffelNet de la lib http_client.

Pour ca, dans RESTBUCK_CLIENT , vous pouvez changer le code pour etre

local
h: NET_HTTP_CLIENT
sess: HTTP_CLIENT_SESSION
resp : detachable HTTP_CLIENT_RESPONSE
l_location : detachable READABLE_STRING_8
body : STRING
do
create h
sess := h.new_session ("http://127.0.0.1:9090")

Ou même, utiliser   h: DEFAULT_HTTP_CLIENT qui utilise libcurl si dispo, sinon l'implementation utilisant EiffelNet.

-- Jocelyn


--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "Groupe des Eiffelistes Francophones".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse groupe_eiffelistes_francophones+unsubscribe@googlegroups.com.
Pour envoyer un message à ce groupe, envoyez un e-mail à l'adresse groupe_eiffelistes_franco...@googlegroups.com.
Visitez ce groupe à l'adresse https://groups.google.com/group/groupe_eiffelistes_francophones.

Jocelyn Fiat

unread,
Jan 25, 2017, 11:28:14 AM1/25/17
to groupe_eiffelis...@googlegroups.com
Je viens de regarder de nouveau l'exemple, et il semblerait qu'au passage au mode concurrent, il y ait eu une regression.
Pour l'exemple, la base de donnée était simulée avec une once ... ce qui est désormais un mauvais choix, car selon les requêtes , l'execution n'est pas forcement dans le meme context thread.

Hormis la gestion de la base de donnée, le code est correct.
Donc en changeant le mode concurrency pour utiliser  "none", l'exemple marchera bien.

L'exemple sera corrigé prochainement.

-- Jocelyn




Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse groupe_eiffelistes_francophones+unsu...@googlegroups.com.
Pour envoyer un message à ce groupe, envoyez un e-mail à l'adresse groupe_eiffelistes_francophones...@googlegroups.com.

Philippe Cordel

unread,
Jan 25, 2017, 11:47:01 AM1/25/17
to Groupe des Eiffelistes Francophones

J’ai passé concurrency à none et rien ne change même message avec ou sans les dll libcurl côté de l’exe

 

J’ai essayé en 16.05 que j’ai encore et cette fois dans le client (version void_safe c’est la seule pour laquelle il y a un ecf) j’obtiens

is_interface_usable: PRECONDITION_VIOLATION raised

 

Ne cherchez pas trop ! tant pis ! Merci !


Philippe


Le mercredi 25 janvier 2017 11:21:32 UTC+1, Philippe Cordel a écrit :

Philippe Cordel

unread,
Jan 26, 2017, 2:36:00 AM1/26/17
to Groupe des Eiffelistes Francophones
Bonjour
Cela dit si vous avez une version corrigée je suis intéressé
Merci d'avance
Philippe

Le mercredi 25 janvier 2017 11:21:32 UTC+1, Philippe Cordel a écrit :

Jocelyn Fiat

unread,
Jan 26, 2017, 4:03:08 AM1/26/17
to groupe_eiffelis...@googlegroups.com
Bonjour,

Par contre c'est une correction temporaire, dans le sens ou l'exemple compile et l'execution fait ce qui est attendue, mais en forçant le mode de concurrence à "none".

Nous tacherons prochainement, de corriger cet exemple pour améliorer le design et le code. (ce qui passe par une solution plus propre pour la base de donnée, et aussi ne plus utiliser les interfaces obsoletes de la lib json).
Par contre, le code purement EiffelWeb ne pose pas de soucis hormis un style qui ne suit pas tous les recommendations "Eiffel".

Cordialement,
-- Jocelyn Fiat,




--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "Groupe des Eiffelistes Francophones".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse groupe_eiffelistes_francophones+unsubscribe@googlegroups.com.
Pour envoyer un message à ce groupe, envoyez un e-mail à l'adresse groupe_eiffelistes_franco...@googlegroups.com.

Philippe Cordel

unread,
Jan 26, 2017, 5:05:36 AM1/26/17
to Groupe des Eiffelistes Francophones
Bonjour
j'ai téléchargé la version de l’exemple Starbucks sur GitHub
A la compilation du serveur des erreurs de chemin de librairies conneg, standalone, ....
J'ai modifié les chemins
Puis j'ai eu 14 classes WSF inconnues
J'ai changé de biobliothèque wsf (il y en a plusieurs dans mon arborescence Eiffel)
Et là je n'ai plus que
WSF_DEFAULT_SERVICE qui n'est pas trouvé

j'ai cherché WSF_DEFAULT_SERVICE.e dans l'arborescence il y en a une dizaine : dois-je rajouter une librairie ?

Philippe

Le mercredi 25 janvier 2017 11:21:32 UTC+1, Philippe Cordel a écrit :

Jocelyn Fiat

unread,
Jan 26, 2017, 6:21:00 AM1/26/17
to groupe_eiffelis...@googlegroups.com
En fait, EiffelWeb existe en tant que projet indépendamment d'EiffelStudio.
(EiffelStudio inclue des libs d'EiffelWeb pour faciliter son utilisation)

Donc soit il faut utiliser la version de github en entier.
Ou alors utiliser la version d'EiffelStudio.

Pour le cas présent, je vais mettre a jour la version d'EiffelStudio (dans le repository subversion), ce sera plus simple pour vous, et évitera les "bidouilles".


Copier dessus le repertoire correspondant d'EiffelStudio, car dans ce cas les fichiers ecf utilisent les chemins relatifs pour trouver certaines libs comme http_client.

-- Jocelyn

--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "Groupe des Eiffelistes Francophones".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse groupe_eiffelistes_francophones+unsubscribe@googlegroups.com.
Pour envoyer un message à ce groupe, envoyez un e-mail à l'adresse groupe_eiffelistes_franco...@googlegroups.com.
Visitez ce groupe à l'adresse https://groups.google.com/group/groupe_eiffelistes_francophones.

Philippe Cordel

unread,
Jan 26, 2017, 8:53:31 AM1/26/17
to Groupe des Eiffelistes Francophones
J'ai téléchargé la version SVN
Le serveur se lance bien 
Un terminal s'ouvre avec les messages suivants :

Starting Web Application Server ...
  - port = 9090
  - max_tcp_clients = 100
  - max_concurrent_connections = 100
  - socket_timeout = 60 seconds
  - socket_recv_timeout = 5 seconds
  - keep_alive_timeout = 15 seconds
  - max_keep_alive_requests = 100
  - SSL = not supported
  - verbose_level = notice

Listening on port 9090 : http://localhost:9090/
#1# Waiting connection...(listening socket:396)
#2# Waiting connection...(listening socket:396)

Le deuxième message #2 apparaît lors de la connexion du client. Le create_order lève une exception "Unable to establish connection: DEVELOPER_EXCEPTION raised"

Pile des appels

Unable to establish connection: DEVELOPER_EXCEPTION raised (DEVELOPER_EXCEPTION)
-------------------------------------------------------------------------------
Class / Object      Routine                Nature of exception           Effect
-------------------------------------------------------------------------------
HTTP_STREAM_SOCKET  c_connect              Unable to establish connection:
<0000000003D8B798>  (From NETWORK_STREAM_SOCKET)
                                           Developer exception.          Fail
-------------------------------------------------------------------------------
HTTP_STREAM_SOCKET  c_connect                                           
<0000000003D8B798>  (From NETWORK_STREAM_SOCKET)
                                           Routine failure.              Fail
-------------------------------------------------------------------------------
HTTP_STREAM_SOCKET  do_connect @5                                       
<0000000003D8B798>  (From NETWORK_STREAM_SOCKET)
                                           Routine failure.              Fail
-------------------------------------------------------------------------------
HTTP_STREAM_SOCKET  connect @4                                          
<0000000003D8B798>  (From NETWORK_SOCKET)  Routine failure.              Fail
-------------------------------------------------------------------------------
NET_HTTP_CLIENT_REQUEST
                    session_socket @19     
<0000000003D85C18>                         Routine failure.              Fail
-------------------------------------------------------------------------------
NET_HTTP_CLIENT_REQUEST
                    response @19           
<0000000003D85C18>                         Routine failure.              Fail
-------------------------------------------------------------------------------
NET_HTTP_CLIENT_REQUEST
                    response @160          
<0000000003D85C18>                         Routine failure.              Fail
-------------------------------------------------------------------------------
NET_HTTP_CLIENT_SESSION
                    impl_custom @15        
<0000000003D84D98>                         Routine failure.              Fail
-------------------------------------------------------------------------------
NET_HTTP_CLIENT_SESSION
                    post @2                
<0000000003D84D98>                         Routine failure.              Fail
-------------------------------------------------------------------------------
RESTBUCK_CLIENT     create_order @4                                     
<0000000003D84588>                         Routine failure.              Fail
-------------------------------------------------------------------------------
RESTBUCK_CLIENT     make @4                                             
<0000000003D84588>                         Routine failure.              Fail
-------------------------------------------------------------------------------
RESTBUCK_CLIENT     root's creation                                     
<0000000003D84588>                         Routine failure.              Exit
-------------------------------------------------------------------------------


Le mercredi 25 janvier 2017 11:21:32 UTC+1, Philippe Cordel a écrit :

Jocelyn Fiat

unread,
Jan 26, 2017, 4:54:16 PM1/26/17
to groupe_eiffelis...@googlegroups.com
Philippe,

Merci pour votre persévérance, cela a été utile pour repérer quelques bugs dans l'implementation utilisant EiffelNet de la library http_client.
Probleme que je n'avais pas vu auparavant, car en utilisant DEFAULT_HTTP_CLIENT, on essaye d'abord avec libcurl, puis avec eiffelnet. Et mon environnement a les libcurl.dll dans le PATH, donc j'utilisais toujours la version libcurl.
Et aussi un soucis dans l'exemple restbucksCRUD.

Donc pour résumer
# http_client avec l'implementation eiffelnet
- le header "Host: ..." n'incluait pas le `port`  donc au lieu de `Host: localhost:9090`, nous avions juste `Host: localhost`. Ce qui ne posait pas de problème majeur pour le client meme, mais le serveur ne savait pas qu'il devait quel port utiliser pour calculer les urls dans le header `Location: ..`. C'est assez propre au CRUD .. suite au POST, on renvoit dans "Location:" l'url de la resource just crée, ici on avait "http://localhost/order/1" au lieu de "http://localhost:9090/order/1". Donc par la suite le client, n'utilisait pas la bonne url pour recuperer les infos sur cet "order".
- le client suivait toute redirection ... si le header "Location: ..." était précisé ... MAIS en fait, il ne faut suivre de telle redirection uniquement si le http status est une redirection (i.e 3**  : 301, ..., 310).

# Coté serveur
- au lieu de construire l'URL absolu soit meme, il vaut mieux utiliser  WSF_REQUEST.script_url (...) ou WSF_REQUEST.absolute_script_url (...)  qui prennent en compte plusieurs données pour calculer la bonne URL  (c.a.d  host, port, si c'est https ou non, et aussi la valeur de base_url ..., mais je n'approfondirai pas ce point).

Voila, vos messages ont permis d'améliorer l'implementation eiffelnet de la lib "http_client".

Maintenant pour vous,
-  si vous utilisez le port "80" pour le server restbucks (et aussi dans le code du client), l'exemple que vous avez marchera sans autre modification.
- et sinon, il serait bon aussi de voir pourquoi libcurl ne marche pas comme voulu. Le plus simple me semble de copier les .dll de %ISE_EIFFEL%\studio\spec\%ISE_PLATFORM%\win64\bin ... à coté de "client.exe" (ou dans votre PATH). En fait je pense que seuls "libcurl.dll, libeay32.dll, ssleay32.dll" sont nécessaires.

De notre coté, il devient urgent de corriger cet exemple restbucks pour qu'il soit "exemplaire".

Pour l'instant, je vous recommanderai donc d'utiliser le repository github d'EiffelWeb pour tester cet exemple.

ou alors
puis de compiler les projets de ewf\examples\restbucksCRUD\

De cette facon, en utilisant la dernière version d'EiffelStudio, vous êtes sur de bénéficier des derniers correctifs sur EiffelWeb.


Cordialement,
-- Jocelyn Fiat.



--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "Groupe des Eiffelistes Francophones".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse groupe_eiffelistes_francophones+unsubscribe@googlegroups.com.
Pour envoyer un message à ce groupe, envoyez un e-mail à l'adresse groupe_eiffelistes_franco...@googlegroups.com.
Visitez ce groupe à l'adresse https://groups.google.com/group/groupe_eiffelistes_francophones.

Philippe Cordel

unread,
Jan 29, 2017, 4:15:12 AM1/29/17
to Groupe des Eiffelistes Francophones
Bonjour Jocelyn
Ravi de ma modeste contribution involontaire à l'amélioration de la plateforme Web !
L'exemple marche sur le port 80
Bizarre qu'il faille changer le port dans le code (set_service_options) et dans le fichier server.ini

Je suis preneur de la version "exemplaire"

On touche du doigt un des problèmes d'Eiffel : les exemples (nombreux) livrés avec EiffelStudio sont difficiles à mettre en oeuvre.
Ce problème a toujours existé. Je me rappelle d'une discussion avec Bertrand où l'on avait conclu que les exemples devraient marcher "out of the box".
Je sais bien que les ressources ne sont pas à la mesure de tels objectifs. Il est déjà remarquable d'arriver à maintenir un langage et son environnement aussi sophistiqués avec si peu de monde.
J'ai toujours peur de "déranger" la communauté en soumettant les soucis que je rencontre (depuis presque 30 ans !) avec mes petits problèmes de mise en oeuvre des exemples fournis .........
Je connais Bertrand depuis 40 ans et j'ai tout appris grâce à lui (j'étais à l'époque du "côté obscur" et j'y serais resté sans cette rencontre !). Je serai ravi de participer à l'amélioration des produits et si vous pensez que ça vaut le coup je pourrais tester un maximum d'exemples et soumettre (ici ?) tous les problèmes que je rencontre.

Cordialement

Philippe


Le mercredi 25 janvier 2017 11:21:32 UTC+1, Philippe Cordel a écrit :

pletanoux

unread,
Jan 30, 2017, 5:58:35 AM1/30/17
to groupe_eiffelis...@googlegroups.com
Salut Joce,

A mon avis pas le bon Philippe ;-)

A+
Philippe Letanoux
Jocelyn Fiat schreef op 2017-01-26 22:53:
> Philippe,
>
> Merci pour votre persévérance, cela a été utile pour repérer
> quelques bugs dans l'implementation utilisant EiffelNet de la library
> http_client.
> Probleme que je n'avais pas vu auparavant, car en utilisant
> DEFAULT_HTTP_CLIENT, on essaye d'abord avec libcurl, puis avec
> eiffelnet. Et mon environnement a les libcurl.dll dans le PATH, donc
> j'utilisais toujours la version libcurl.
> Et aussi un soucis dans l'exemple restbucksCRUD.
>
> Donc pour résumer
> # http_client avec l'implementation eiffelnet
> - le header "Host: ..." n'incluait pas le `port` donc au lieu de
> `Host: localhost:9090`, nous avions juste `Host: localhost`. Ce qui ne
> posait pas de problème majeur pour le client meme, mais le serveur ne
> savait pas qu'il devait quel port utiliser pour calculer les urls dans
> le header `Location: ..`. C'est assez propre au CRUD .. suite au POST,
> on renvoit dans "Location:" l'url de la resource just crée, ici on
> avait "http://localhost/order/1 [5]" au lieu de
> "http://localhost:9090/order/1 [6]". Donc par la suite le client,
> n'utilisait pas la bonne url pour recuperer les infos sur cet "order".
> - le client suivait toute redirection ... si le header "Location: ..."
> était précisé ... MAIS en fait, il ne faut suivre de telle
> redirection uniquement si le http status est une redirection (i.e 3**
> : 301, ..., 310).
>
> # Coté serveur
> - au lieu de construire l'URL absolu soit meme, il vaut mieux utiliser
> WSF_REQUEST.script_url (...) ou WSF_REQUEST.absolute_script_url (...)
> qui prennent en compte plusieurs données pour calculer la bonne URL
> (c.a.d host, port, si c'est https ou non, et aussi la valeur de
> base_url ..., mais je n'approfondirai pas ce point).
>
> Voila, vos messages ont permis d'améliorer l'implementation eiffelnet
> de la lib "http_client".
>
> Maintenant pour vous,
> - si vous utilisez le port "80" pour le server restbucks (et aussi
> dans le code du client), l'exemple que vous avez marchera sans autre
> modification.
> - et sinon, il serait bon aussi de voir pourquoi libcurl ne marche pas
> comme voulu. Le plus simple me semble de copier les .dll de
> %ISE_EIFFEL%studiospec%ISE_PLATFORM%win64bin ... à coté de
> "client.exe" (ou dans votre PATH). En fait je pense que seuls
> "libcurl.dll, libeay32.dll, ssleay32.dll" sont nécessaires.
>
> De notre coté, il devient urgent de corriger cet exemple restbucks
> pour qu'il soit "exemplaire".
>
> Pour l'instant, je vous recommanderai donc d'utiliser le repository
> github d'EiffelWeb pour tester cet exemple.
>
>> git clone https://github.com/EiffelWebFramework/EWF.git [7] ewf
> ou alors
>> svn checkout https://github.com/EiffelWebFramework/EWF/trunk [8] ewf
> puis de compiler les projets de ewfexamplesrestbucksCRUD
>
> De cette facon, en utilisant la dernière version d'EiffelStudio, vous
> êtes sur de bénéficier des derniers correctifs sur EiffelWeb.
>
> Cordialement,
> -- Jocelyn Fiat.
>
> Le 26 janvier 2017 à 14:53, Philippe Cordel
> <philipp...@gmail.com> a écrit :
>
>> J'ai téléchargé la version SVN
>> Le serveur se lance bien
>> Un terminal s'ouvre avec les messages suivants :
>>
>> Starting Web Application Server ...
>> - port = 9090
>> - max_tcp_clients = 100
>> - max_concurrent_connections = 100
>> - socket_timeout = 60 seconds
>> - socket_recv_timeout = 5 seconds
>> - keep_alive_timeout = 15 seconds
>> - max_keep_alive_requests = 100
>> - SSL = not supported
>> - verbose_level = notice
>>
>> Listening on port 9090 : http://localhost:9090/ [1]
>> groupe_eiffelistes_fr...@googlegroups.com.
>> Pour envoyer un message à ce groupe, envoyez un e-mail à
>> l'adresse groupe_eiffelis...@googlegroups.com.
>> Visitez ce groupe à l'adresse
>> https://groups.google.com/group/groupe_eiffelistes_francophones [2].
>> [3].
>>
>> Pour obtenir davantage d'options, consultez la page
>> https://groups.google.com/d/optout [4].
>
> --
> Vous recevez ce message, car vous êtes abonné au groupe Google
> Groupes "Groupe des Eiffelistes Francophones".
> Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le
> concernant, envoyez un e-mail à l'adresse
> groupe_eiffelistes_fr...@googlegroups.com.
> Pour envoyer un message à ce groupe, envoyez un e-mail à l'adresse
> groupe_eiffelis...@googlegroups.com.
> Visitez ce groupe à l'adresse
> https://groups.google.com/group/groupe_eiffelistes_francophones [2].
> Cette discussion peut être lue sur le Web à l'adresse
> https://groups.google.com/d/msgid/groupe_eiffelistes_francophones/CAFHVCHXY1JcAc6UcC%2BaQ6UozKuFWQYoCFtmWtGN0SSroDykgyA%40mail.gmail.com
> [9].
> Pour obtenir davantage d'options, consultez la page
> https://groups.google.com/d/optout [4].
>
>
> Links:
> ------
> [1] http://localhost:9090/
> [2] https://groups.google.com/group/groupe_eiffelistes_francophones
> [3]
> https://groups.google.com/d/msgid/groupe_eiffelistes_francophones/f19e6553-e36a-46a4-b6c3-488bbbe6b60e%40googlegroups.com?utm_medium=email&amp;utm_source=footer
> [4] https://groups.google.com/d/optout
> [5] http://localhost/order/1
> [6] http://localhost:9090/order/1
> [7] https://github.com/EiffelWebFramework/EWF.git
> [8] https://github.com/EiffelWebFramework/EWF/trunk
> [9]
> https://groups.google.com/d/msgid/groupe_eiffelistes_francophones/CAFHVCHXY1JcAc6UcC%2BaQ6UozKuFWQYoCFtmWtGN0SSroDykgyA%40mail.gmail.com?utm_medium=email&utm_source=footer

Jocelyn Fiat

unread,
Jan 31, 2017, 4:34:29 AM1/31/17
to groupe_eiffelis...@googlegroups.com
 
Ravi de ma modeste contribution involontaire à l'amélioration de la plateforme Web !
Toute contribution est la bienvenue.
 
L'exemple marche sur le port 80
Bizarre qu'il faille changer le port dans le code (set_service_options) et dans le fichier server.ini

Oui, au debut on utilisait les ports 80 pour les exemples, mais justement ca entrait en conflit avec d'autres services deja installés sur les machines  (serveur web, skype, et autre service qui pourraient utiliser le port 80), donc on utilise en general le port 9090 pour les exemples.
Ensuite, le server.ini a la priorité, dans le code on utilise set_service_options pour definir la valeur par defaut, et dans le server.ini on peut changer sans recompiler, c'est plus pratique.
Maintenant, le code "client" n'a pas de fichier de configuration, donc c'est le code du client qu'il faut changer pour utiliser le bon port.
Pour un soucis de simplicité, on devrait probablement oublier le "client" et enrichir le service restbuck avec une interface web qui permettrait de créer des "ORDER", mais on y perdrait aussi en simplicité car ce serait plus qu'un service REST API.
Nous allons repenser cet exemple prochainement.
 
Je suis preneur de la version "exemplaire"

Bien compris
 
On touche du doigt un des problèmes d'Eiffel : les exemples (nombreux) livrés avec EiffelStudio sont difficiles à mettre en oeuvre.
Ce problème a toujours existé. Je me rappelle d'une discussion avec Bertrand où l'on avait conclu que les exemples devraient marcher "out of the box".

Il est vrai que des qu'on a besoin d'une base de donnée, ou d'un service tier, il n'est pas toujours aisé d'avoir des exemples qui marchent sous toutes les plateformes et tous les environnements.
Ensuite quand on a un syteme avec plusieurs process, il y a parfois des ajustements à faire. Il manque surement des README qui détaillent tout ca.
 
Je sais bien que les ressources ne sont pas à la mesure de tels objectifs. Il est déjà remarquable d'arriver à maintenir un langage et son environnement aussi sophistiqués avec si peu de monde.

Nous avons la chance d'avoir une communauté d'utilisateurs qui aident souvent sur le forum (mailing list), et aussi qui contribue à Eiffel par des projets disponibles sur le Web, les débats sont aussi souvent tres intéressants et de bon niveau. Les utilisateurs pourraient encore plus aider en améliorant les exemples, la documentation, en aidant à maintenir le tout. Après c'est la délicate frontière entre fournisseur de solution et communauté, qu'est-ce qui devrait relever d'EiffelSoftware, et qu'est-ce qui serait bon d'être pris en charge par la communauté.
 
J'ai toujours peur de "déranger" la communauté en soumettant les soucis que je rencontre (depuis presque 30 ans !) avec mes petits problèmes de mise en oeuvre des exemples fournis .........
Je connais Bertrand depuis 40 ans et j'ai tout appris grâce à lui (j'étais à l'époque du "côté obscur" et j'y serais resté sans cette rencontre !). Je serai ravi de participer à l'amélioration des produits et si vous pensez que ça vaut le coup je pourrais tester un maximum d'exemples et soumettre (ici ?) tous les problèmes que je rencontre.

Oui cela serait utile, en interne, nous avons des procedures de test, mais il est vrai qu'on ne peut pas tout tester et toute remontée d'erreur est appréciée.
Il y a aussi certains exemples qui sont peut être obsolete, et d'autres qui manquent, donc si vous avez des idées d'exemples qui manquent, toute suggestion est bienvenue, et toute contribution.

Pour l'heure, nous allons déjà revoir l'exemple restbuck en repensant aussi sa mise en oeuvre, le rendre simple pour tous utilisateurs.

 Cordialement,
-- Jocelyn Fiat

Cordialement

Philippe

Le mercredi 25 janvier 2017 11:21:32 UTC+1, Philippe Cordel a écrit :
Bonjour à tous
Existe-t-il une solution pour faire du DBC en php ?

merci d'avance de vos lumières

Philippe

--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "Groupe des Eiffelistes Francophones".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse groupe_eiffelistes_francophones+unsubscribe@googlegroups.com.
Pour envoyer un message à ce groupe, envoyez un e-mail à l'adresse groupe_eiffelistes_franco...@googlegroups.com.
Visitez ce groupe à l'adresse https://groups.google.com/group/groupe_eiffelistes_francophones.
Cette discussion peut être lue sur le Web à l'adresse https://groups.google.com/d/msgid/groupe_eiffelistes_francophones/ee6236f9-dfdd-4d37-b065-79979921eea6%40googlegroups.com.

Pour obtenir davantage d'options, consultez la page https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages