inspiredminds/contao-wordpressimport

heimrichhannot/contao-news_categories as "suggest"

Opened this issue · 9 comments

Hi,

Wäre es eine gute Idee das "heimrichhannot/contao-news_categories" als "suggest" ins composer.json reinzutun?

Nachdem ich mir den Code angeschaut habe, wollte ich es mit den Kategorien testen und deswegen musste ich die "contao-news_categories" über Composer installieren. Ich habe aber zuerst diese Repo gefunden:

https://github.com/codefog/contao-news_categories

Das Problem mit dieser Repo ist, dass sie einen anderen Bundlenamen bzw. anderen Namespace als die

https://github.com/heimrichhannot/contao-news_categories

repo hat.

Also wenn dann muss es codefog/contao-news_categories sein. heimrichhannot/contao-news_categories unterstützt die Extension nicht.

Meiner meinung nach ist es derzeit umgekehrt:

        // only import categories if news_categories extension is present
        if (!in_array('news_categories', array_keys(System::getContainer()->getParameter('kernel.bundles'))))
        {
            return;
        }

Ist immer FALSE, da codefog/contao-news_categories den Bundlenamen "CodefogNewsCategoriesBundle" und nicht news_categories hat.

heimrichhannot/contao-news_categories hat den Namen "news_categories", weil es eing. kein eichter Symfony-Bundle, sondern ein über Symlink gemappte Contao-Erweiterung ist.

Die heißen nur zufällig gleich ;). Prinzipiell unterstützt die inspiredminds/contao-wordpressimport Extension die codefog/contao-news_categories extension. Allerdings ist es so, dass die neueste Version von codefog/contao-news_categories ein Bundle ist. Davor war es ein reguläres Contao 3 Modul. Daher müsste diese Abfrage dementsprechend aktualisiert werden. Außer codefog/contao-news_categories hat dafür ein Mapping eingebaut. Das habe ich bisher nicht überprüft.

Die Änderung könnte zB so aussehen:

$bundles = ['news_categories', \Codefog\NewsCategoriesBundle\CodefogNewsCategoriesBundle::class];
if (array_intersect($bundles,  array_keys(System::getContainer()->getParameter('kernel.bundles'))) === 0)
{
    return;
}

Oder man verzichtet auf den Support älterer codefog/contao-news_categories Versionen und nimmt folgendes:

$bundle = \Codefog\NewsCategoriesBundle\CodefogNewsCategoriesBundle::class;
if (!in_array($bundle, array_keys(System::getContainer()->getParameter('kernel.bundles'))))
{
    return;
}

Und in der composer.json zusätzlich einen conflict:

{
    "conflict": {
        "codefog/contao-news_categories": "<3.0"
    }
}

Und natürlich den suggest.

Die 1. Version gefällt mir besser, weil es eig. mit dem heimrichhannot-Modul auch funktioniert. :)

heimrichhannot/contao-news_categories ist aber nur ein Fork von codefog/contao-news_categories. Es gibt imho keinen Grund in Contao 4 heimrichhannot/contao-news_categories statt codefog/contao-news_categories (in Version 3.x und höher) zu verwenden.

Oder gibt es einen Grund, warum du unbedingt den heimrichhannot/contao-news_categories fork benutzt, anstatt das Original? Vor allem unter Contao 4 solltest du lieber codefog/contao-news_categories in Version >=3.0 verwenden.

Nein, es gibt keinen bestimmten Grund, ich habe es nur deswegen installiert, dass es mit deiner Erweiterung zusammenarbeiten kann. :)

Achso, in dem Fall würde ich eher empfehlen codefog/contao-news_categories:^2.0 zu installieren ;)