[OT] "integrazione" con applicazioni PHP

Salve a tutti,
vi espongo un problema di “integrazione” forse un po’ OT - e per questo
chiedo scusa anticipatamente -
ma ritengo possa essere uno punto di discussione interessante.

Ho un sito basato su Joomla (quindi PHP-MySQL-Apache e Linux) con i
propri utenti registrati, il forum,
le newsletter (chi le ricorda ancora? :)) etc etc.
Accanto a ciò vorrei realizzare un’applicazione per l’inserimento di alcuni
dati (legati a ciascuna
utenza), e vorrei farlo in Rails… e qui nascono i problemi.

Come posso, secondo voi, utilizzare gli account già esistenti in Joomla
(c’è un’apposita tabella users nel DB mysql) da Rails?

Del tipo: l’utente si logga in Joomla…e io vorrei vederlo nella mia
applicazione Rails (che, per inciso, gira sulla stessa macchina).

Idee? Critiche? Commenti?

TIA

Carlo

secondo me, come si dice dalle mie parti “stai mischinado fungi e
palummieddi” due tecnologie ed applicazioni molto diverse e forse IMHO
poco
integrabili…

ma rimane la mia opinione

Il 20/03/07, Carlo P. [email protected] ha scritto:

On 3/20/07, Carlo P. [email protected] wrote:

Ho un sito basato su Joomla (quindi PHP-MySQL-Apache e Linux) con i propri
utenti registrati, il forum,
le newsletter (chi le ricorda ancora? :)) etc etc.
Accanto a ciò vorrei realizzare un’applicazione per l’inserimento di
alcuni dati (legati a ciascuna
utenza), e vorrei farlo in Rails… e qui nascono i problemi.

topic molto interessante. ci sono piattaforme di CMS avanzate in PHP in
cui
sarebbe bello poter integrare ad-hoc rails. oppure semplicemente
progetti
esistenti da ampliare.

la prima cosa che mi viene in mente è generare servizi su rails a cui ci
si
collega dal front-end php, di fatto utilizzando rails come un
application-server.

e per integrare preservando anche la parte interattiva di rails? come
fareste?

Il giorno 20/mar/07, alle ore 20:04, Carlo P. ha scritto:

utenza), e vorrei farlo in Rails… e qui nascono i problemi.

Come posso, secondo voi, utilizzare gli account già esistenti in
Joomla (c’è un’apposita tabella users nel DB mysql) da Rails?

Del tipo: l’utente si logga in Joomla…e io vorrei vederlo nella
mia applicazione Rails (che, per inciso, gira sulla stessa macchina).

Idee? Critiche? Commenti?

Se vuoi farlo alla porca maniera usi lo stesso DB, poi nel modello
sistemi i nomi dei campi e le varie convenzioni che sono
sovrascrivibili.
Io, per lavoro, devo integrare un softwarone in Rails con ELGG (non
chiedetemi che e’, il robo e’ stato introdotto nella piattaforma
mentre ero evidentemente ubriaco e incapace di oppormi), e la mia
soluzione e’ stata costringere l’autore di questo inserimento a
scrivere un web service in PHP che mi restituisse i dati di cui avevo
bisogno. Io, pero’, ho solo bisogno di leggere quei dati …
Devi valutare tu i pro e i contro, in Rails creare un client XMLRPC
e’ una cretinata, pero’ se vuoi modificare i record direttamente
magari ti conviene usare direttamente il DB (o una vista sul DB).
Renditi anche conto che se il software in PHP accede direttamente a
quei dati non e’ bello avere un altro software che te li modifica
sotto il naso.
Io andrei di web services …

ngw


Nicholas W.
[email protected]
http://www.tochunky.org

On 3/20/07, Carlo P. [email protected] wrote:

Ho un sito basato su Joomla (quindi PHP-MySQL-Apache e Linux) con i propri utenti registrati, il forum,
le newsletter (chi le ricorda ancora? :)) etc etc.
Accanto a ciò vorrei realizzare un’applicazione per l’inserimento di alcuni dati (legati a ciascuna
utenza), e vorrei farlo in Rails… e qui nascono i problemi.

Come posso, secondo voi, utilizzare gli account già esistenti in Joomla (c’è un’apposita tabella users nel DB mysql) da Rails?

Puoi provare ad agganciarti direttamente al database di Joomla, anche
se non potrai fare affidamento sulle convenzioni di Rails. Articolo
utile:

Del tipo: l’utente si logga in Joomla…e io vorrei vederlo nella mia applicazione Rails (che, per inciso, gira sulla stessa macchina).

Idee? Critiche? Commenti?

Una possibile strategia sarebbe usare pesantemente Ajax. A Joomla
faresti servire un’applicazione consistente in un’unica pagina, che
non richieda cioè cambiamenti di URL nell’uso, invece fa tutto tramite
chiamate asincrone all’applicazione Rails la quale di volta in volta
opera sul database e restituisce frammenti di interfaccia.

Altra strategia (sporchissima) è fare tutto in Rails e ingabbiarlo in
un


Massimiliano M.
code: http://dev.hyperstruct.net
blog: http://blog.hyperstruct.net

Anzitutto grazie a tutti per le risposte.

La cosa che mi lascia perplesso è come “far capire” a Rails quando un
utente è loggato in Joomla. Accedere al DB per reperire le credenziali non
è un problema (girano sulla stessa macchina…).

Quello che avviene è questo:

  • l’utente si logga in Joomla, e quindi riceve un cookie con le
    informazioni della
    propria sessione
  • Rails potrebbe accedere a tale cookie ed estrapolare il session-id
  • Rails “legge” i dati della sessione presenti in un file / il DB
    Joomla e recupera in tal modo l’ID dell’utente.

Il tutto avverrebbe utilizzando il medesimo DB di Joomla per le utenze,
con il vantaggio che la gestione delle stesse è in un solo punto (Joomla
appunto):
iscrizione, password reminder, etc.

Che ne dite?

Massimiliano M. [email protected] ha scritto: On 3/20/07,
Carlo P. wrote:

Ho un sito basato su Joomla (quindi PHP-MySQL-Apache e Linux) con i propri utenti registrati, il forum,
le newsletter (chi le ricorda ancora? :)) etc etc.
Accanto a ciò vorrei realizzare un’applicazione per l’inserimento di alcuni dati (legati a ciascuna
utenza), e vorrei farlo in Rails… e qui nascono i problemi.

Come posso, secondo voi, utilizzare gli account già esistenti in Joomla (c’è un’apposita tabella users nel DB mysql) da Rails?

Puoi provare ad agganciarti direttamente al database di Joomla, anche
se non potrai fare affidamento sulle convenzioni di Rails. Articolo
utile:

http://www.therubymine.com/articles/2007/01/18/convention-over-configuration-ma-se-voglio-configurare

Del tipo: l’utente si logga in Joomla…e io vorrei vederlo nella mia applicazione Rails (che, per inciso, gira sulla stessa macchina).

Idee? Critiche? Commenti?

Una possibile strategia sarebbe usare pesantemente Ajax. A Joomla
faresti servire un’applicazione consistente in un’unica pagina, che
non richieda cioè cambiamenti di URL nell’uso, invece fa tutto tramite
chiamate asincrone all’applicazione Rails la quale di volta in volta
opera sul database e restituisce frammenti di interfaccia.

Altra strategia (sporchissima) è fare tutto in Rails e ingabbiarlo in
un su una pagina di Joomla.


Massimiliano M.
code: http://dev.hyperstruct.net
blog: http://blog.hyperstruct.net

Una volta che hai il cookie puoi prenderti i dati della sessione
dell’utente facendo un unserialize del file di sessione.

Guardati : http://raa.ruby-lang.org/project/php-serialize/

Ciao

Simone

Se gli unici dati che le due applicazioni devono condividere sono
quelli relativi agli utenti (e in sola lettura da parte di Rails), mi
sembra una cosa fattibilissima e nemmeno tanto sporca…
L’unica cosa un po’ incasinata è forse la gestione delle sessioni… È
forse più facile se si usano sessioni nel DB?
:slight_smile:
Carlo P. wrote:

Anzitutto grazie a tutti per le risposte.

La cosa che mi lascia perplesso è come “far capire” a Rails quando un
utente è
loggato in Joomla. Accedere al DB per reperire le credenziali non è un
problema
(girano sulla stessa macchina…).

Quello che avviene è questo:

  • l’utente si logga in Joomla, e quindi riceve un cookie con le
    informazioni d
    ella
    propria sessione
  • Rails potrebbe accedere a tale cookie ed estrapolare il session-id
  • Rails “legge” i dati della sessione presenti in un file / il DB
    Joomla e rec
    upera in tal modo l’ID dell’utente.

Il tutto avverrebbe utilizzando il medesimo DB di Joomla per le utenze,
con il
vantaggio che la gestione delle stesse è in un solo punto (Joomla
appunto):
iscrizione, password reminder, etc.

Che ne dite?

Massimiliano M. [1][email protected] ha scritto: On
3/20/07, Carl
o Pecchia wrote:

Ho un sito basato su Joomla (quindi PHP-MySQL-Apache e Linux) con i
propri uten
ti registrati, il forum,
le newsletter (chi le ricorda ancora? :)) etc etc.
Accanto a ciò vorrei realizzare un’applicazione per l’inserimento di alcuni
dat
i (legati a ciascuna
utenza), e vorrei farlo in Rails… e qui nascono i problemi.

Come posso, secondo voi, utilizzare gli account già esistenti in Joomla
(c’è un
'apposita tabella users nel DB mysql) da Rails?

Puoi provare ad agganciarti direttamente al database di Joomla, anche
se non potrai fare affidamento sulle convenzioni di Rails. Articolo
utile:

[2]TheRubyMine.com is for sale | HugeDomains
-ma-se-voglio-configurare

Del tipo: l’utente si logga in Joomla…e io vorrei vederlo nella mia
applicazi
one Rails (che, per inciso, gira sulla stessa macchina).

Idee? Critiche? Commenti?

Una possibile strategia sarebbe usare pesantemente Ajax. A Joomla
faresti servire un’applicazione consistente in un’unica pagina, che
non richieda cioè cambiamenti di URL nell’uso, invece fa tutto tramite
chiamate asincrone all’applicazione Rails la quale di volta in volta
opera sul database e restituisce frammenti di interfaccia.

Altra strategia (sporchissima) è fare tutto in Rails e ingabbiarlo in
un su una pagina di Joomla.


“Militaire : variété d’homme amoindri par le procédé de «l’uniforme» qui est
un
e préparation à l’uniformité totale du cercueil.” - Boris Vian

References

  1. mailto:[email protected]

Del tipo: l’utente si logga in Joomla…e io vorrei vederlo nella mia
applicazione Rails (che, per inciso, gira sulla stessa macchina).

Idee? Critiche? Commenti?

Ancora ai primi tempi in cui Rails era uscito mi ero imbattuto nel wiki
in
qualcosa di interessante (dal titolo, visto che non l’ho mai letto :P)
che
potrebbe esserti utile. Si rifà alla libreria segnalata da Simone
Fumagalli
(php_serialize) ma il link
[1]http://wiki.rubyonrails.com/rails/pages/PhpSessionche ti lascio
spiega proprio come riuscire a beccare le sessioni di un
applicazione PHP attraverso una applicazione scritta con Rails.
Ho visto che hanno modificato ad hoc la libreria e che fanno dei
semplici
esempi su come usare il tutto. Spero possa aiutarti :wink:

[1] Peak Obsession


Andrea R.

: : i’m a miner : : | therubymine.com | now in Amsterdam

In effetti è possibile far gestire le sessioni nel DB piuttosto che su
file (parlo di Joomla in particolare, in PHP è possibile di suo…)

david [email protected] ha scritto:
Se gli unici dati che le due applicazioni devono condividere sono
quelli relativi agli utenti (e in sola lettura da parte di Rails), mi
sembra una cosa fattibilissima e nemmeno tanto sporca…
L’unica cosa un po’ incasinata è forse la gestione delle sessioni… È
forse più facile se si usano sessioni nel DB?
:slight_smile:
Carlo P. wrote:

Anzitutto grazie a tutti per le risposte.

La cosa che mi lascia perplesso è come “far capire” a Rails quando un
utente è
loggato in Joomla. Accedere al DB per reperire le credenziali non è un
problema
(girano sulla stessa macchina…).

Quello che avviene è questo:

  • l’utente si logga in Joomla, e quindi riceve un cookie con le
    informazioni d
    ella
    propria sessione
  • Rails potrebbe accedere a tale cookie ed estrapolare il session-id
  • Rails “legge” i dati della sessione presenti in un file / il DB
    Joomla e rec
    upera in tal modo l’ID dell’utente.

Il tutto avverrebbe utilizzando il medesimo DB di Joomla per le utenze,
con il
vantaggio che la gestione delle stesse è in un solo punto (Joomla
appunto):
iscrizione, password reminder, etc.

Che ne dite?

Massimiliano M. [1] ha scritto: On 3/20/07, Carl
o Pecchia wrote:

Ho un sito basato su Joomla (quindi PHP-MySQL-Apache e Linux) con i
propri uten
ti registrati, il forum,
le newsletter (chi le ricorda ancora? :)) etc etc.
Accanto a ciò vorrei realizzare un’applicazione per l’inserimento di alcuni
dat
i (legati a ciascuna
utenza), e vorrei farlo in Rails… e qui nascono i problemi.

Come posso, secondo voi, utilizzare gli account già esistenti in Joomla
(c’è un
'apposita tabella users nel DB mysql) da Rails?

Puoi provare ad agganciarti direttamente al database di Joomla, anche
se non potrai fare affidamento sulle convenzioni di Rails. Articolo
utile:

[2]TheRubyMine.com is for sale | HugeDomains
-ma-se-voglio-configurare

Del tipo: l’utente si logga in Joomla…e io vorrei vederlo nella mia
applicazi
one Rails (che, per inciso, gira sulla stessa macchina).

Idee? Critiche? Commenti?

Una possibile strategia sarebbe usare pesantemente Ajax. A Joomla
faresti servire un’applicazione consistente in un’unica pagina, che
non richieda cioè cambiamenti di URL nell’uso, invece fa tutto tramite
chiamate asincrone all’applicazione Rails la quale di volta in volta
opera sul database e restituisce frammenti di interfaccia.

Altra strategia (sporchissima) è fare tutto in Rails e ingabbiarlo in
un su una pagina di Joomla.


“Militaire : variété d’homme amoindri par le procédé de «l’uniforme» qui est
un
e préparation à l’uniformité totale du cercueil.” - Boris Vian

References

  1. mailto:[email protected]

Ci avevo pensato… ma l’evoluzione delle applicazioni da realizzare mi
ha portato a scegliere un framework che renda DAVVERO agile il processo
di sviluppo del codice.
La mia aspirazione è riuscire, prima o poi, a rimpiazzare la parte Joomla
con un CMS degno (e magari leggero) scritto in Rails…

Giovanni C. [email protected] ha scritto: Il giorno mar,
20/03/2007 alle 20.04 +0100, Carlo P. ha scritto:

Del tipo: l’utente si logga in Joomla…e io vorrei vederlo nella mia applicazione Rails (che, per inciso, gira sulla stessa macchina).

Idee? Critiche? Commenti?

Io ti direi di considerare anche se non ti convenga fare direttamente
tutto in PHP, al di là di quello che vorresti fare tu.

Giovanni

Grazie!
In effetti ho dimenticato di guardare sul “luogo” più ovvio… il wiki di
Rails :frowning:

Andrea R. [email protected] ha scritto: >

Del tipo: l’utente si logga in Joomla…e io vorrei vederlo nella mia
applicazione Rails (che, per inciso, gira sulla stessa macchina).

Idee? Critiche? Commenti?

Ancora ai primi tempi in cui Rails era uscito mi ero imbattuto nel wiki
in
qualcosa di interessante (dal titolo, visto che non l’ho mai letto :P)
che
potrebbe esserti utile. Si rifà alla libreria segnalata da Simone
Fumagalli
(php_serialize) ma il link
[1]che ti lascio
spiega proprio come riuscire a beccare le sessioni di un
applicazione PHP attraverso una applicazione scritta con Rails.
Ho visto che hanno modificato ad hoc la libreria e che fanno dei
semplici
esempi su come usare il tutto. Spero possa aiutarti :wink:

[1] Peak Obsession


Andrea R.

: : i’m a miner : : | therubymine.com | now in Amsterdam

On 3/21/07, Giovanni C. [email protected] wrote:

Accanto a ciò vorrei realizzare un’applicazione per l’inserimento di

Io ti direi di considerare anche se non ti convenga fare direttamente
tutto in PHP, al di là di quello che vorresti fare tu.

Nel breve termine, probabilmente ci metti meno tempo a fare tutto in
PHP.
In una prospettiva un po’ più lunga, magari invece ti conviene puntare a
migrare le cose su un linguaggio più moderno :slight_smile:

Il tuo vantaggio è che sul web è facile integrare servizi diversi.
Partiziona le url; un ramo è servito da php, l’altro da Rails. Però ti
consiglio di evitare di integrare attraverso il db. Aggiungi alla parte
php
un semplice servizio che ti restituisce le informazioni che devi
interrogare
(tipo la lista degli utenti online) in XML (o magari YML!)
Probabilmento lo
puoi fare in poche righe di PHP. E non ti serve un Web Service™.

L’importante è fare tutto per piccoli passi: tieni sempre in piedi tutte
le
tue funzionalità, e migrale una per volta in Rails, se è questo il tuo
obiettivo. Tenendo sempre tutta la funzionalità funzionante.

Matteo

http://matteo.vaccari.name/

Il giorno mar, 20/03/2007 alle 20.04 +0100, Carlo P. ha scritto:

Del tipo: l’utente si logga in Joomla…e io vorrei vederlo nella mia applicazione Rails (che, per inciso, gira sulla stessa macchina).

Idee? Critiche? Commenti?

Io ti direi di considerare anche se non ti convenga fare direttamente
tutto in PHP, al di là di quello che vorresti fare tu.

Giovanni