Projekt přestal fungovat a skončí v bootstrap.php na require autoload.php. A ztracený composer.json

Meedoo
Člen | 11
+
0
-

Ahoj,

dostal jsem opravit jeden web, který jim přestal fungovat. Vrací prázdnou stránku.
Po studování to skončí v bootstrap.php hned na require __DIR__ . ‚/../vendor/autoload.php‘;

Nevíte, v čem by mohl být problém?

Bohužel nemohu zkusit composer update ani install, protože jsem nedostal composer.json/.lock. A to je druhý dotaz, dá se nějak vygenerovat ze struktury vendor?

Děkuji za reakce

David Matějka
Moderator | 6439
+
0
-

Možná budeš mít vypnuté display_errors, zkus si to pro debug zapnout a třeba zjistíš víc.

neznám žádný tool, který by uměl composer json/lock soubory vygenerovat, ale ve vendor/composer/installed.json bys měl vidět něco podobného, co je v composer.lock. Z toho bych zkusil vygenerovat composer.json – bohužel nezjistíš, co bylo skutečně v required, co v required-dev a jaký byla požadovaná verze. ale nic lepšího asi nevymyslíš.

Marek Bartoš
Nette Blogger | 718
+
0
-

Na problém chybějícího composer.json a composer.lock jsem nedávno narazil též. Vytvořil jsem jednoduchý command, který ti z vendor/composer/installed.json pomůže sestavit composer.json s aktuálně nainstalovanými verzemi všech balíků, snad pomůže
https://github.com/…cs/README.md#…

Editoval Mabar (3. 2. 2021 15:27)

Meedoo
Člen | 11
+
0
-

Je to zvláštní, ale ani ve vendor/composer nemají installed.json. Nevím, jak je to možné

Kamil Valenta
Člen | 562
+
0
-

Třeba není vendor seskládán composerem, ale ručně ze ZIPů…

dakur
Člen | 357
+
0
-

@Meedoo A ten vendor/autoload.php, jak vypadá? Je to vůbec autoload composeru? Nenapsal si ho někdo ručně ještě v předcomposerové době? Vznik Composeru je právě reakcí na problémy ručního loadingu, takže je klidně možné, že je to psané ručně a žádný composer.json z toho nevytřískáš. 🙂

Editoval dakur (4. 2. 2021 15:24)

Meedoo
Člen | 11
+
0
-

dakur napsal(a):

@Meedoo A ten vendor/autoload.php, jak vypadá? Je to vůbec autoload composeru? Nenapsal si ho někdo ručně ještě v předcomposerové době? Vznik Composeru je právě reakcí na problémy ručního loadingu, takže je klidně možné, že je to psané ručně a žádný composer.json z toho nevytřískáš. 🙂

autoload je vytvořen pomocí composeru viz kod:

<?php

// autoload.php @generated by Composer

require_once __DIR__ . '/composer/autoload_real.php';

return ComposerAutoloaderInit01ac15b28e707035aa41ec268::getLoader();
Kamil Valenta
Člen | 562
+
0
-

Nemusí být, composerem se mohly stáhnout jen počáteční balíčky a dál se to mohlo udržovat ručně. I s takovou variantou jsem se setkal… Porovnej si lastmod adresářů ve vendor a lastmod třeba toho autoloadu.