Как да разгранича нужните от ненужните PHP екстеншъни за нормалната работа на приложение

Алекс

Registered
Здравейте,

Трябва ми помощ за задача, което ми беше поставена от клиент. Изисква се от мен да му предам списък, съдържащ само PHP модулите, които са нужни на приложението за нормалната му работа, като идеята му е да премахне всичко друго. Според мен това е безсмислено, но знаете - клиентът винаги е прав! :) Малко спецификации на приложението:

PHP Версия: 8.0.14
Framework: Laravel
Framework версия: (Laravel) 8

Ако е нужна още някаква информация - ще дам.

Благодарен съм за всяка една идея! :)
 
Без да познавам php модулите – защо не изключиш всички, освен очевидно необходимите (като този за връзка с базата), и не видиш какво се чупи, включвайки нужните едно по едно?
 
Мисля, че @devcvetomir ще има отговор на въпроса. Но и аз бих махнал всичко преди да видя кое е излишно, включвайки един по един после. А реално щом са там сложени по дефолт, не са ли нужни дори за елементарното създаване на просто приложение с този фреймуърк. И много ли са, за да се махнат? Има ли и някакви read txt файлове, които да пише кое за какво е и защо е там?
 
  • BCMath PHP Extension
  • Ctype PHP Extension
  • Fileinfo PHP extension
  • JSON PHP Extension
  • Mbstring PHP Extension
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Tokenizer PHP Extension
  • XML PHP Extension
  • php-mysql

- и бъмп на последна версия laravel composer.json

JSON:
{
    "name": "laravel/laravel",
    "type": "project",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "require": {
        "php": "^8.0.2",
        "guzzlehttp/guzzle": "^7.2",
        "laravel/framework": "^9.11",
        "laravel/sanctum": "^2.14.1",
        "laravel/tinker": "^2.7"
    },
    "require-dev": {
        "fakerphp/faker": "^1.9.1",
        "laravel/sail": "^1.0.1",
        "mockery/mockery": "^1.4.4",
        "nunomaduro/collision": "^6.1",
        "phpunit/phpunit": "^9.5.10",
        "spatie/laravel-ignition": "^1.0"
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/",
            "Database\\Factories\\": "database/factories/",
            "Database\\Seeders\\": "database/seeders/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "scripts": {
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-update-cmd": [
            "@php artisan vendor:publish --tag=laravel-assets --ansi --force"
        ],
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ]
    },
    "extra": {
        "laravel": {
            "dont-discover": []
        }
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true
    },
    "minimum-stability": "dev",
    "prefer-stable": true
}
 
Последно редактирано:
Благодаря на всички за отговорите. Още не сме преминали към новият сървър, в който ще има само нужните модули за приложението и нищо излишно. Когато дойде този момент ще Ви информирам какво е станало и какво сме направили :)
 
Благодаря на всички за отговорите. Още не сме преминали към новият сървър, в който ще има само нужните модули за приложението и нищо излишно. Когато дойде този момент ще Ви информирам какво е станало и какво сме направили :)
Задължително. Хахаха, това май ще един от най-оптимизираните фреймуър базирани проекти. :)
 
Задължително. Хахаха, това май ще един от най-оптимизираните фреймуър базирани проекти. :)
Тази тема не е свързана с форумчето, а с проект на клиент, но все пак - ще е доста оптимизиран проект :)
 
Задължително. Хахаха, това май ще един от най-оптимизираните фреймуър базирани проекти. :)

То ако оптимизацията се постигаше с изключване на неизползвани apache модули :D
 
Оптимизацията като цяло зависи от всичко. Но има неща, които са по-голям фактор от други.
 
Тази тема не е свързана с форумчето, а с проект на клиент, но все пак - ще е доста оптимизиран проект :)
Да, не съм казал с какво. Но вярвам, че ще е топ. Все като ръчкам из дадени проекти има библиотеки "които после ще са нужни". :)

Но честно казано, не стават нужни по две причини - или няма функционалност, която да се опре на тях или има по-нови разработки в тази насока. Като четох в предната тема каква машинка малак си си взел, за това казах, че такава оптимизация е добре дошла. От към сървърни ресурси, в случая може би сторидж.
 
Като цяло "оптимизация" като тази е безсмислена. То даже не мога да го нарека оптимизация. Тези модули нямат никакъв overhead, нито пък заемат някакво място - 21 век сме все пак.

По-скоро собственика на проекта си търси белята, когато по-късно някой имплементира нещо, което изисква някой модул, който вероятно всеки би имал на локалната си машина и след това изгърми в production.
 
Като цяло "оптимизация" като тази е безсмислена. То даже не мога да го нарека оптимизация. Тези модули нямат никакъв overhead, нито пък заемат някакво място - 21 век сме все пак.

По-скоро собственика на проекта си търси белята, когато по-късно някой имплементира нещо, което изисква някой модул, който вероятно всеки би имал на локалната си машина и след това изгърми в production.
Абсолютно съм съгласен. Понякога клиентите са доста странни. Но нали знаеш, клиентът винаги е прав :cry:
 
Абсолютно съм съгласен. Понякога клиентите са доста странни. Но нали знаеш, клиентът винаги е прав :cry:
Това желание на клиента ли е? Леле, ще береш ядове с него. Обикновено като започнат да дават идеи в насока архитектура и "олекотяване" на проект, става тежко. На такива казваш двойна сума, да имаш пари за валериан преди да си го ударил с чука в главата. :)

Като цяло "оптимизация" като тази е безсмислена. То даже не мога да го нарека оптимизация. Тези модули нямат никакъв overhead, нито пък заемат някакво място - 21 век сме все пак.

По-скоро собственика на проекта си търси белята, когато по-късно някой имплементира нещо, което изисква някой модул, който вероятно всеки би имал на локалната си машина и след това изгърми в production.
Нямаш идея как хората "събират" магазин на споделен хостинг, защото нещо не се кефят да ги ъпдейтват на мениджд ВПС. :) Ценовият скок им се струва много голям и са прави. Говорим за хора далеч от системното администриране. В най-добрия случай могат да си ъпдейтнат PHPMyAdmin-а на сървъра. :)

Аз също съм на мнение, че не трябва да се премахва нищо, щом се води дефолтна инсталация. Щом е там, значи има някаква идея зад това. Но пък и много неща се слагат така, за да влязат в употреба някой ден.
 
Благодаря на всички за отговорите. Още не сме преминали към новият сървър, в който ще има само нужните модули за приложението и нищо излишно. Когато дойде този момент ще Ви информирам какво е станало и какво сме направили :)

То не е излишно :) , иначе със закъснение и аз да кажа - няма да увеличиш/ забързаш нищо в приложението, кажи на клиента, че е идиот. Най-много някой пакет да сложите след време и да се чудите що не работи пакета.
 
Ако пакетите не се използват, то какво забавяне се очаква да създават?

Преди време и ние се наложи да угаждаме на един клиент през абсурдна държавна поръчка. Версията на Laravel по спомен беше 6 (и нещо). Изключихме някои от стандартните пакети и дойде време за update на 7. Тръгнаха да ни обясняват, как не се правело така и прочие, но като им пуснахме заданието, което те са изискали първоначално (даже с описани пакети от require-dev) и набързо смениха тона. Платиха си за глупостта и всичко е точно. :D
 
Да, нищо не товарят, освен ако не си следят всеки мегабайт в сториджа, което пак е лудост, защото не говорим за нещо много велико. Колкото до заданието на такива учреждения, в опита си някои там да се напъне и да изцеди максимално от "опита" си, за да "опрости и улесни" проекта, сте стига до доста големи глупости. Този поне е знаел какво да иска, другите и това не правят. Но пък да се чудиш кое е по-добре.

Преди време бях свидетел на обществена поръчка, като в кампанийната част пишеше графата за онлайн: Сайт - 1 бр. С такова описание получиха един качен груб HTML, който беше конвертиран от Word. Така, че съм на мнение, че тези задания трябва да се пишат от хора, които знаят за какво става дума, но не прекалено, защото се получава пък да отидеш в другата крайност - да се започне с безсмислени и грешни изпълнения.
 

Горе