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

Raspunde prin e-mail lui