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

Алекс

Registered
Здравейте,

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

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

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

Благодарен съм за всяка една идея! :)
 

anonimen

Super Moderator
Без да познавам php модулите – защо не изключиш всички, освен очевидно необходимите (като този за връзка с базата), и не видиш какво се чупи, включвайки нужните едно по едно?
 

Blinky

Administrator
Екип
Мисля, че @devcvetomir ще има отговор на въпроса. Но и аз бих махнал всичко преди да видя кое е излишно, включвайки един по един после. А реално щом са там сложени по дефолт, не са ли нужни дори за елементарното създаване на просто приложение с този фреймуърк. И много ли са, за да се махнат? Има ли и някакви read txt файлове, които да пише кое за какво е и защо е там?
 

devcvetomir

Registered
  • 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
}
 
Последно редактирано:

Алекс

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

Blinky

Administrator
Екип
Благодаря на всички за отговорите. Още не сме преминали към новият сървър, в който ще има само нужните модули за приложението и нищо излишно. Когато дойде този момент ще Ви информирам какво е станало и какво сме направили :)
Задължително. Хахаха, това май ще един от най-оптимизираните фреймуър базирани проекти. :)
 

Алекс

Registered
Задължително. Хахаха, това май ще един от най-оптимизираните фреймуър базирани проекти. :)
Тази тема не е свързана с форумчето, а с проект на клиент, но все пак - ще е доста оптимизиран проект :)
 

Алекс

Registered
Оптимизацията като цяло зависи от всичко. Но има неща, които са по-голям фактор от други.
 

Blinky

Administrator
Екип
Тази тема не е свързана с форумчето, а с проект на клиент, но все пак - ще е доста оптимизиран проект :)
Да, не съм казал с какво. Но вярвам, че ще е топ. Все като ръчкам из дадени проекти има библиотеки "които после ще са нужни". :)

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

Revelation

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

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

Алекс

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

По-скоро собственика на проекта си търси белята, когато по-късно някой имплементира нещо, което изисква някой модул, който вероятно всеки би имал на локалната си машина и след това изгърми в production.
Абсолютно съм съгласен. Понякога клиентите са доста странни. Но нали знаеш, клиентът винаги е прав :cry:
 

Blinky

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

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

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

Аз също съм на мнение, че не трябва да се премахва нищо, щом се води дефолтна инсталация. Щом е там, значи има някаква идея зад това. Но пък и много неща се слагат така, за да влязат в употреба някой ден.
 

devcvetomir

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

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

dakata__92

Super Moderator
Ако пакетите не се използват, то какво забавяне се очаква да създават?

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

Blinky

Administrator
Екип
Да, нищо не товарят, освен ако не си следят всеки мегабайт в сториджа, което пак е лудост, защото не говорим за нещо много велико. Колкото до заданието на такива учреждения, в опита си някои там да се напъне и да изцеди максимално от "опита" си, за да "опрости и улесни" проекта, сте стига до доста големи глупости. Този поне е знаел какво да иска, другите и това не правят. Но пък да се чудиш кое е по-добре.

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

Горе