smarty-php / smarty

Smarty is a template engine for PHP, facilitating the separation of presentation (HTML/CSS) from application logic.
Other
2.26k stars 712 forks source link

Composer and external dependencies defeat the point of using Smarty over any off-the-shelf framework. #1053

Closed xander-st-aubyn closed 3 months ago

xander-st-aubyn commented 3 months ago

My attention has been elsewhere for the past three years and I have circled around to updating my web software and writing some new stuff. However, Smarty seems completely bent, despite the restoration of a loading script, towards the PSR and dependency hell it introduces.

Prior to version 5, Smarty has never had external dependencies aside from PHP and I would argue it makes it less attractive if it is going to force developers to to either adhere to composer deciding how things will be instantiated or go on what will undoubtedly, in time, become a fetch quest for dependencies, some of which would be come unavailable either entirely or the specific version, if not a full on dep hell.

Please, reconsider using off-the-shelf dependencies and if it is unavoidable, please vendor them and ensure Smarty can always be simply.. included without anything else.

marclaporte commented 3 months ago

In https://github.com/smarty-php/smarty/blob/master/composer.json, I see:

    "require": {
        "php": "^7.2 || ^8.0",
        "symfony/polyfill-mbstring": "^1.27"
    },

Can you give an example of a dependency?

xander-st-aubyn commented 3 months ago

So symfony/polyfill-mbstring is not required to run smarty?

xander-st-aubyn commented 3 months ago

I have done a complete re-read of the changelog since 3.1.*. Okay, its optional unless you don't have the extension.. That still doesn't invalidate vendoring so Smarty is always self contained regardless.

However, I did read the changelog completely. I think it would be best if I just forked an older version of smarty. It's been radically redesigned and I am not pleased with it.

Sorry for the noise.