Re: [rlug] prioritate biblioteci php

2021-01-08 Fir de Conversatie Alex 'CAVE' Cernat
On 08-Jan-21 4:46 PM, Mihai Badici wrote:
>>
> Momentan am încercat să redenumesc folderul VObject din php și să
> rulez composer install în plugin-ul respectiv.
>
> Nu a mers. Acum mai e o chestiune, că s-ar putea să am nevoie de el și
> în alt plugin ( ăsta e libcalendaring, dar mai există și plugin-ul
> calendar care folosește biblioteca asta)
vezi ca nu cumva fiecare plugin sa aiba directorul lui separat de
vendor, ca path-ul initial era un pic cam ciudat
>
> O să mai încerc să îl adaug direct la roundcube.
>
> Oricum, mulțumesc. Eu am ridicat problema tocmai pentru că e oarecum
> universală, sigur că biblioteca asta e mai exotică, dar în general
> dacă ai o aplicatie care are nevoie de o bibliotecă mai nouă mi se
> pare un pic pe dos că întâi caută în php și după aia în vendor , în
> viziunea mea ar fi trebuit să fie invers. 

tocmai de aia prefer organizare pe namespace-uri, adio php_include_path
si balarii de genul din 1900 toamna; sa stii sigur ce si cand incarci,
si fiecare proiect sa aiba dependintele lui, nu sa se bazeze pe cine
stie ce versiuni globale

bine, acum de cand cu containerizarea izolarea e mult mai simpla si mult
mai buna, insa mai e pana cand toata lumea o sa se apuce de kuberneti
sau ce o mai veni in viitorul apropiat, mai ales pentru un server de webmail

Alex


___
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug_lists.lug.ro


Re: [rlug] prioritate biblioteci php

2021-01-08 Fir de Conversatie Mihai Badici




da, incearca sa scoti pachetul de debian (care cel mai probabil e vechi)
si sa lasi composerul sa-si faca treaba de dependinte si sa genereze
autoloadul

cu siguranta ca se poate si fara uninstall (heck, e doar php) insa nu
pot sa-ti dau un raspuns concret ce si cum fara sa-mi fi bagat
surubelnita prin cod sa vad cu ce se mananca ... poate doar daca vreun
colistas s-o fi lovit de fix aceeasi problema si deja stie o cale de
rezolvare concreta

Momentan am încercat să redenumesc folderul VObject din php și să rulez 
composer install în plugin-ul respectiv.


Nu a mers. Acum mai e o chestiune, că s-ar putea să am nevoie de el și 
în alt plugin ( ăsta e libcalendaring, dar mai există și plugin-ul 
calendar care folosește biblioteca asta)


O să mai încerc să îl adaug direct la roundcube.

Oricum, mulțumesc. Eu am ridicat problema tocmai pentru că e oarecum 
universală, sigur că biblioteca asta e mai exotică, dar în general dacă 
ai o aplicatie care are nevoie de o bibliotecă mai nouă mi se pare un 
pic pe dos că întâi caută în php și după aia în vendor , în viziunea mea 
ar fi trebuit să fie invers.



___
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug_lists.lug.ro


Re: [rlug] prioritate biblioteci php

2021-01-08 Fir de Conversatie Alex 'CAVE' Cernat
On 08-Jan-21 4:23 PM, Mihai Badici wrote:
> în principiu mie mi-ar fi util să am clasele astea disponibile în
> roundcube ( să fie aceleași și în main și în plugins) Doar că nu am
> știut cum să fac .
>
> În variantele mai vechi îmi mergea cu php-sabre ( sau cum se numește)
> din distribuție. Nu știu exact cum face composer-ul: în roundcube
> fișierul config.json nu face referință la sabredav, doar în plugin-ul
> respectiv am referința la el. Îmi sugerezi că dacă dezinstalez
> php-sabre php va căuta automat în "vendor" ? Încerc un pic mai încolo
> și zic :)  în principiu toate componentele sistemului meu importă
> plugin-urile astea din roundcube, deci ar fi ideal așa că aș avea
> structurile consecvente.
>
da, incearca sa scoti pachetul de debian (care cel mai probabil e vechi)
si sa lasi composerul sa-si faca treaba de dependinte si sa genereze
autoloadul

cu siguranta ca se poate si fara uninstall (heck, e doar php) insa nu
pot sa-ti dau un raspuns concret ce si cum fara sa-mi fi bagat
surubelnita prin cod sa vad cu ce se mananca ... poate doar daca vreun
colistas s-o fi lovit de fix aceeasi problema si deja stie o cale de
rezolvare concreta

Alex


___
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug_lists.lug.ro


Re: [rlug] prioritate biblioteci php

2021-01-08 Fir de Conversatie Mihai Badici


On 1/8/21 4:00 PM, Alex 'CAVE' Cernat wrote:

On 08-Jan-21 1:58 PM, Mihai Badici wrote:


roundcube-ul e și el din surse.

Se pare că dacă vrei să folosești modulul de calendar la justa lui
valoare ( să poți invita alți useri de exemplu la un meeting)
VObject-ul pe care îl am eu în debian nu are toate atributele. Deci e
musai să folosesc sabre ăla, 3.5.3 pe care îl zice composerul.

Aș putea să schimb la roundcube să încarce clasele din altă parte?
Dacă da, cum?

de aia ziceam ca ori instalez tot din pachete (ceea ce la pachete de
clase php ... personal slabe sanse), ori totul "de la sursa"; din ce vad
tu ai instalat cumva "distribution based", folosind path-urile de sistem
(/usr & friends), de aia banuiam ca ai fi instalat din pachet
vezi daca are referinte de autoload si de unde incarca, si atunci ai
putea sa pui ceva de genul:

     "autoload": {
     "psr-4": {
     "Path\\To\\FQCNDir\\": "app/"
     }



în principiu mie mi-ar fi util să am clasele astea disponibile în 
roundcube ( să fie aceleași și în main și în plugins) Doar că nu am 
știut cum să fac .


În variantele mai vechi îmi mergea cu php-sabre ( sau cum se numește) 
din distribuție. Nu știu exact cum face composer-ul: în roundcube 
fișierul config.json nu face referință la sabredav, doar în plugin-ul 
respectiv am referința la el. Îmi sugerezi că dacă dezinstalez php-sabre 
php va căuta automat în "vendor" ? Încerc un pic mai încolo și zic :)  
în principiu toate componentele sistemului meu importă plugin-urile 
astea din roundcube, deci ar fi ideal așa că aș avea structurile 
consecvente.




___
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug_lists.lug.ro


Re: [rlug] prioritate biblioteci php

2021-01-08 Fir de Conversatie Alex 'CAVE' Cernat
On 08-Jan-21 1:58 PM, Mihai Badici wrote:
>
>
> roundcube-ul e și el din surse.
>
> Se pare că dacă vrei să folosești modulul de calendar la justa lui
> valoare ( să poți invita alți useri de exemplu la un meeting)
> VObject-ul pe care îl am eu în debian nu are toate atributele. Deci e
> musai să folosesc sabre ăla, 3.5.3 pe care îl zice composerul.
>
> Aș putea să schimb la roundcube să încarce clasele din altă parte?
> Dacă da, cum?

de aia ziceam ca ori instalez tot din pachete (ceea ce la pachete de
clase php ... personal slabe sanse), ori totul "de la sursa"; din ce vad
tu ai instalat cumva "distribution based", folosind path-urile de sistem
(/usr & friends), de aia banuiam ca ai fi instalat din pachet
vezi daca are referinte de autoload si de unde incarca, si atunci ai
putea sa pui ceva de genul:

    "autoload": {
    "psr-4": {
    "Path\\To\\FQCNDir\\": "app/"
    }
    }
in exemplul de mai sus tot ce e namespace-ul \Path\To\FQCNDir (aplicatia
"ta") va fi incarcat din directorul app, iar la composer dump-autoload
se va uita el prin vendor si va genera un autoload cat sa incarce la
nevoie si ce e prin vendor
iarasi, vorbesc chestii generale, nu am mai lucrat de mult cu roundcube
ca sa ma uit prin surse, insa dupa cum spuneam prefer ca tot ce tine de
proiect php sa fie intr-un $project_root, iar doc_root-ul sa fie
$project_root/public, asa cum e la moda de la laravel incoace (prima
data si eu am injurat, ca era ceva nou, insa daca te gandesti bine face
foarte mult sens sa nu expui direct decat minimul de surse necesare,
recte front-controllerul si ideal doar atat, restul statice)
mai mult, daca folosesti nginx cu try_files poti sa "ascunzi" si
front-controller-ul intr-un alt director separat, dar aici deja vorbim
de specializari prea mari :-P

Alex


___
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug_lists.lug.ro


Re: [rlug] prioritate biblioteci php

2021-01-08 Fir de Conversatie Mihai Badici


On 1/8/21 1:32 PM, Alex 'CAVE' Cernat wrote:

ai 2 varianta la php: ori folosesti numai ce-ti da distributia, ceea ce
inseamna ca vor fi chestii mai vechi, insa in general mai stabile, si nu
te trezesti ca se strica ceva ca a facut un third party update si a
explodat; ar trebui sa mearga din fuleu insa nu prea vad de ce te-ai mai
juca cu composerul (ca sa fac o paralela e oarecum cazul in care
instalezi un pachet si dupa aia vii si compilezi o versiune noua din
surse, ceea ce inseamna cam ciorba)
ori privesti vhostul tau ca si un tot unitar, unde ai in vendor toate
dependintele la nivel de clase (desigur ca modulele necesare de php,
daca e cazul vor fi instalate global); in cazul asta instalezi inclusiv
roundcube-ul din surse, nu din pachetul de distributie
in mod normal, de la psr-4 citire, daca folosesti composerul iti va crea
el automat un script autoload pe care sa-l incluzi in scripturile "tale"
(de fapt cu arhitectura actuala ar trebui doar in front-controller, ca
cica nu mai avem jde mii de scripturi de intrare - da, stiu, gluma buna,
trebuia sa o pastrez pentru 1 aprilie); dat fiind ca folosesti
roundcube-ul din pachet, ar trebui sa vezi ce spl_autoload_register are
hardcodat prin el, ca sa vezi de unde-ti incarca clasele
mai e si varianta veche cu include_path, insa mi se pare old school si
de kko, de cand cu namespace-urile de la 5.3 sau 5.4 in sus

de ce exact ai apelat la cocktail de apt si composer ?


roundcube-ul e și el din surse.

Se pare că dacă vrei să folosești modulul de calendar la justa lui 
valoare ( să poți invita alți useri de exemplu la un meeting) VObject-ul 
pe care îl am eu în debian nu are toate atributele. Deci e musai să 
folosesc sabre ăla, 3.5.3 pe care îl zice composerul.


Aș putea să schimb la roundcube să încarce clasele din altă parte? Dacă 
da, cum?









___
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug_lists.lug.ro


Re: [rlug] prioritate biblioteci php

2021-01-08 Fir de Conversatie Alex 'CAVE' Cernat
ai 2 varianta la php: ori folosesti numai ce-ti da distributia, ceea ce
inseamna ca vor fi chestii mai vechi, insa in general mai stabile, si nu
te trezesti ca se strica ceva ca a facut un third party update si a
explodat; ar trebui sa mearga din fuleu insa nu prea vad de ce te-ai mai
juca cu composerul (ca sa fac o paralela e oarecum cazul in care
instalezi un pachet si dupa aia vii si compilezi o versiune noua din
surse, ceea ce inseamna cam ciorba)
ori privesti vhostul tau ca si un tot unitar, unde ai in vendor toate
dependintele la nivel de clase (desigur ca modulele necesare de php,
daca e cazul vor fi instalate global); in cazul asta instalezi inclusiv
roundcube-ul din surse, nu din pachetul de distributie
in mod normal, de la psr-4 citire, daca folosesti composerul iti va crea
el automat un script autoload pe care sa-l incluzi in scripturile "tale"
(de fapt cu arhitectura actuala ar trebui doar in front-controller, ca
cica nu mai avem jde mii de scripturi de intrare - da, stiu, gluma buna,
trebuia sa o pastrez pentru 1 aprilie); dat fiind ca folosesti
roundcube-ul din pachet, ar trebui sa vezi ce spl_autoload_register are
hardcodat prin el, ca sa vezi de unde-ti incarca clasele
mai e si varianta veche cu include_path, insa mi se pare old school si
de kko, de cand cu namespace-urile de la 5.3 sau 5.4 in sus

de ce exact ai apelat la cocktail de apt si composer ?

Alex

On 08-Jan-21 12:37 PM, Mihai Badici wrote:
> Salut,
>
> Am întâlnit o problemă legată de composer (și cumva am și rezolvat-o)
> doar că aș vrea să pricep cum funcționează.
>
>
> Am un modul de roundcube care folosește biblioteca sabre ( pentru
> formatul ical)
>
> Din ce văd eu în debian buster ( dar problema a tot reapărut de-a
> lungul timpului și în altele) biblioteca default nu conține toate
> clasele pe care le vreau eu.
>
> am la început următoarele incluziuni:
>
> use \Sabre\VObject;
> use \Sabre\VObject\DateTimeParser;
>
> În formatul ăsta plugin-ul plânge după o anume clasă Text.php care
> într-adevăr nu există în VObject
>
> în composer.json plugin-ul are:
>
>  "require": {
>     "php": ">=5.4.0",
>     "roundcube/plugin-installer": ">=0.1.3",
>     "sabre/vobject": "~3.5.3"
>     }
>
> după ce dau composer install nu se întâmplă nimic însă, aparent el
> caută tot în clasele php-ului .
>
> Dacă adaug un:
>
> include("/usr/share/roundcubemail/plugins/libcalendaring/vendor/sabre/vobject/lib/Property/Text.php");
>
> eroarea dispare, însă apar alte probleme legate de incompatibilitatea
> între vobject-ul de aici și cel din
>
> /usr/share/php/Sabre . Definițiile din php sunt mai vechi decât cele
> cerute de plugin
>
> Soluția mea provizorie și funcțională a fost să copiez manual tot ce e
> în "vendor" referitor la VObject  în folderul Sabre de mai sus.
>
> Dar evident e o soluție ciobănească. Interesul meu ar fi ca cel puțin
> tot ce e în roundcube (dacă nu tot ce e php) să folosească versiunea
> actualizată a bibliotecilor sabre, evident fără să stric package
> manager-ul.
>
> Pe scurt: în ce ordine folosește php-ul bibliotecile în cazul în care
> are mai multe versiuni disponibile și cum se procedează să le
> folosești pe cele pe care le vrei tu, unde vrei tu?
>
> Danke,
>
> Mihai
>
>
>
>
>
>
>
> ___
> RLUG mailing list
> RLUG@lists.lug.ro
> http://lists.lug.ro/mailman/listinfo/rlug_lists.lug.ro



___
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug_lists.lug.ro


Re: [rlug] prioritate biblioteci php

2021-01-08 Fir de Conversatie madalin
Eu as incerca asa.

As face un mv vendor vendor.bak (sau macar sterge/redenumeste sabre) si as
incerca sa instalez iarasi pachetele folosind composer install (atentie, nu
face modificari in composer.json/.lock)

Din ce vad problema la tine pare sa fie ca ai instalat initial pachetul
manual -- si de-aia e posibil sa fi ramas cumva vechile fisiere.

De asemenea, ai incercat un composer dump-autoload ?

On Fri, Jan 8, 2021 at 12:39 PM Mihai Badici  wrote:

> Salut,
>
> Am întâlnit o problemă legată de composer (și cumva am și rezolvat-o)
> doar că aș vrea să pricep cum funcționează.
>
>
> Am un modul de roundcube care folosește biblioteca sabre ( pentru
> formatul ical)
>
> Din ce văd eu în debian buster ( dar problema a tot reapărut de-a lungul
> timpului și în altele) biblioteca default nu conține toate clasele pe
> care le vreau eu.
>
> am la început următoarele incluziuni:
>
> use \Sabre\VObject;
> use \Sabre\VObject\DateTimeParser;
>
> În formatul ăsta plugin-ul plânge după o anume clasă Text.php care
> într-adevăr nu există în VObject
>
> în composer.json plugin-ul are:
>
>   "require": {
>  "php": ">=5.4.0",
>  "roundcube/plugin-installer": ">=0.1.3",
>  "sabre/vobject": "~3.5.3"
>  }
>
> după ce dau composer install nu se întâmplă nimic însă, aparent el caută
> tot în clasele php-ului .
>
> Dacă adaug un:
>
>
> include("/usr/share/roundcubemail/plugins/libcalendaring/vendor/sabre/vobject/lib/Property/Text.php");
> eroarea dispare, însă apar alte probleme legate de incompatibilitatea
> între vobject-ul de aici și cel din
>
> /usr/share/php/Sabre . Definițiile din php sunt mai vechi decât cele
> cerute de plugin
>
> Soluția mea provizorie și funcțională a fost să copiez manual tot ce e
> în "vendor" referitor la VObject  în folderul Sabre de mai sus.
>
> Dar evident e o soluție ciobănească. Interesul meu ar fi ca cel puțin
> tot ce e în roundcube (dacă nu tot ce e php) să folosească versiunea
> actualizată a bibliotecilor sabre, evident fără să stric package
> manager-ul.
>
> Pe scurt: în ce ordine folosește php-ul bibliotecile în cazul în care
> are mai multe versiuni disponibile și cum se procedează să le folosești
> pe cele pe care le vrei tu, unde vrei tu?
>
> Danke,
>
> Mihai
>
>
>
>
>
>
>
> ___
> RLUG mailing list
> RLUG@lists.lug.ro
> http://lists.lug.ro/mailman/listinfo/rlug_lists.lug.ro
>


-- 
Cu drag,
madalin
http://madalin.eu
___
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug_lists.lug.ro


[rlug] prioritate biblioteci php

2021-01-08 Fir de Conversatie Mihai Badici

Salut,

Am întâlnit o problemă legată de composer (și cumva am și rezolvat-o) 
doar că aș vrea să pricep cum funcționează.



Am un modul de roundcube care folosește biblioteca sabre ( pentru 
formatul ical)


Din ce văd eu în debian buster ( dar problema a tot reapărut de-a lungul 
timpului și în altele) biblioteca default nu conține toate clasele pe 
care le vreau eu.


am la început următoarele incluziuni:

use \Sabre\VObject;
use \Sabre\VObject\DateTimeParser;

În formatul ăsta plugin-ul plânge după o anume clasă Text.php care 
într-adevăr nu există în VObject


în composer.json plugin-ul are:

 "require": {
    "php": ">=5.4.0",
    "roundcube/plugin-installer": ">=0.1.3",
    "sabre/vobject": "~3.5.3"
    }

după ce dau composer install nu se întâmplă nimic însă, aparent el caută 
tot în clasele php-ului .


Dacă adaug un:

include("/usr/share/roundcubemail/plugins/libcalendaring/vendor/sabre/vobject/lib/Property/Text.php");
eroarea dispare, însă apar alte probleme legate de incompatibilitatea 
între vobject-ul de aici și cel din


/usr/share/php/Sabre . Definițiile din php sunt mai vechi decât cele 
cerute de plugin


Soluția mea provizorie și funcțională a fost să copiez manual tot ce e 
în "vendor" referitor la VObject  în folderul Sabre de mai sus.


Dar evident e o soluție ciobănească. Interesul meu ar fi ca cel puțin 
tot ce e în roundcube (dacă nu tot ce e php) să folosească versiunea 
actualizată a bibliotecilor sabre, evident fără să stric package manager-ul.


Pe scurt: în ce ordine folosește php-ul bibliotecile în cazul în care 
are mai multe versiuni disponibile și cum se procedează să le folosești 
pe cele pe care le vrei tu, unde vrei tu?


Danke,

Mihai







___
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug_lists.lug.ro