diff --git a/best-practices/bg/composer.texy b/best-practices/bg/composer.texy index b6ab241b3f..8fc745e6d7 100644 --- a/best-practices/bg/composer.texy +++ b/best-practices/bg/composer.texy @@ -67,8 +67,8 @@ $db = new Nette\Database\Connection('sqlite::memory:'); ``` -Актуализиране до най-новата версия .[#toc-update-to-the-latest-version] -======================================================================= +Актуализиране на пакетите до най-новите версии .[#toc-update-packages-to-the-latest-versions] +============================================================================================= За да обновите всички използвани пакети до най-новата версия в съответствие с ограниченията на версиите, определени в `composer.json`, използвайте командата `composer update`. Например зависимостта `"nette/database": "^3.0"` ще инсталира най-новата версия 3.x.x, но не и версия 4. @@ -98,25 +98,57 @@ composer create-project nette/web-project name-of-the-project Вместо `name-of-the-project` посочете името на директорията на проекта и изпълнете командата. Composer ще изтегли хранилището `nette/web-project` от GitHub, което вече съдържа файла `composer.json`, и веднага след това ще инсталира самата рамка Nette. Остава само да [проверите разрешенията за запис на |nette:troubleshooting#Setting-Directory-Permissions] директориите `temp/` и `log/`, и сте готови да започнете работа. +Ако знаете на каква версия на PHP ще бъде хостван проектът, не забравяйте да [я настро |#PHP Version]ите. + Версия на PHP .[#toc-php-version] ================================= -Composer винаги инсталира версии на пакети, които са съвместими с версията на PHP, която използвате в момента. Разбира се, това може да не е същата версия на PHP, която е инсталирана на вашия хост. Затова е добре да добавите информация за версията на PHP на хоста към `composer.json`, така че да бъдат инсталирани само съвместимите версии на пакетите: +Composer винаги инсталира версиите на пакетите, които са съвместими с версията на PHP, която използвате в момента (или по-скоро с версията на PHP, използвана в командния ред при стартиране на Composer). Вероятно това не е същата версия, която използва вашият уеб хост. Ето защо е много важно да добавите информация за версията на PHP на вашия хостинг във файла `composer.json`. След това ще бъдат инсталирани само версии на пакети, съвместими с хоста. + +Например, за да настроите проекта да работи с PHP 8.2.3, използвайте командата: + +```shell +composer config platform.php 8.2.3 +``` + +По този начин версията се записва във файла `composer.json`: ```js { - "require": { - ... - }, "config": { "platform": { - "php": "7.2" # PHP версия сервера + "php": "8.2.3" } } } ``` +Номерът на версията на PHP обаче е посочен и на друго място във файла, в раздела `require`. Докато първият номер определя версията, за която ще бъдат инсталирани пакетите, вторият номер казва за каква версия е написано самото приложение. +(Разбира се, няма смисъл тези версии да се различават, така че двойното вписване е излишно.) Тази версия се задава с командата: + +```shell +composer require php 8.2.3 --no-update +``` + +Или директно във файла `composer.json`: + +```js +{ + "require": { + "php": "8.2.3" + } +} +``` + + +Фалшиви доклади .[#toc-false-reports] +===================================== + +При надграждане на пакети или промяна на номера на версиите се случват конфликти. Един пакет има изисквания, които са в конфликт с друг и т.н. Понякога обаче Composer отпечатва фалшиви съобщения. Той съобщава за конфликт, който в действителност не съществува. В този случай помага да изтриете файла `composer.lock` и да опитате отново. + +Ако съобщението за грешка продължава, то е мислено сериозно и трябва да прочетете от него какво и как да промените. + Packagist.org - глобално хранилище .[#toc-packagist-org-global-repository] ========================================================================== diff --git a/best-practices/cs/composer.texy b/best-practices/cs/composer.texy index 12ba37407d..2f0c503870 100644 --- a/best-practices/cs/composer.texy +++ b/best-practices/cs/composer.texy @@ -67,8 +67,8 @@ $db = new Nette\Database\Connection('sqlite::memory:'); ``` -Aktualizace na nejnovější verze -=============================== +Aktualizace balíčků na nejnovější verze +======================================= Aktualizaci použiváných knihoven na nejnovější verze podle podmínek definovaných v `composer.json` má na starosti příkaz `composer update`. Např. u závislosti `"nette/database": "^3.0"` nainstaluje nejnovější verzi 3.x.x, ale nikoliv už verzi 4. @@ -98,25 +98,57 @@ composer create-project nette/web-project nazev-projektu Jako `nazev-projektu` vložte název adresáře pro svůj projekt a potvrďte. Composer stáhne repozitář `nette/web-project` z GitHubu, který už obsahuje soubor `composer.json`, a hned potom Nette Framework. Mělo by již stačit pouze [nastavit oprávnění |nette:troubleshooting#nastaveni-prav-adresaru] na zápis do složek `temp/` a `log/` a projekt by měl ožít. +Pokud víte, na jaké verzi bude PHP projekt hostován, nezapomeňte [ji nastavit |#Verze PHP]. + Verze PHP ========= -Composer vždy instaluje ty verze balíčků, které jsou kompatibilní s verzí PHP, kterou právě používáte. Což ovšem nemusí být stejná verze, jako používá váš hosting. Proto je užitečné si do souboru `composer.json` přidat informaci o verzi PHP na hostingu a poté se budou instalovat pouze verze balíčků s hostingem kompatibilní: +Composer vždy instaluje ty verze balíčků, které jsou kompatibilní s verzí PHP, kterou právě používáte (lépe řečeno s verzí PHP používanou v příkazové řádce při spouštění Composeru). Což ale nejspíš není stejná verze, jakou používá váš hosting. Proto je velmi důležité si do souboru `composer.json` přidat informaci o verzi PHP na hostingu. Poté se budou instalovat pouze verze balíčků s hostingem kompatibilní. + +To, že projekt poběží například na PHP 8.2.3, nastavíme příkazem: + +```shell +composer config platform.php 8.2.3 +``` + +Takto se verze zapíše do souboru `composer.json`: ```js { - "require": { - ... - }, "config": { "platform": { - "php": "7.2" # verze PHP na hostingu + "php": "8.2.3" } } } ``` +Nicméně číslo verze PHP se uvádí ještě na jiném místě souboru, a to v sekci `require`. Zatímco první číslo určuje, pro jakou verzi se budou instalovat balíčky, druhé číslo říká, pro jakou verzi je napsaná samotná aplikace. +A podle něj například PhpStorm nastavuje *PHP language level*. (Samozřejmě nedává smysl, aby se tyto verze lišily, takže dvojí zápis je nedomyšlenost.) Tuto verzi nastavíte příkazem: + +```shell +composer require php 8.2.3 --no-update +``` + +Nebo přímo v souboru `composer.json`: + +```js +{ + "require": { + "php": "8.2.3" + } +} +``` + + +Planá hlášení +============= + +Při upgradu balíčků nebo změnách čísel verzí se stává, že dojde ke konfliktu. Jeden balíček má požadavky, které jsou v rozporu s jiným a podobně. Composer ale občas vypisuje plané hlášení. Hlásí konflikt, který reálně neexistuje. V takovém případě pomůže smazat soubor `composer.lock` a zkusit to znovu. + +Pokud chybová hláška přetrvává, pak je myšlena vážně a je potřeba z ní vyčíst, co a jak upravit. + Packagist.org - centrální repozitář =================================== diff --git a/best-practices/de/composer.texy b/best-practices/de/composer.texy index f5204097e6..a4171fa8ff 100644 --- a/best-practices/de/composer.texy +++ b/best-practices/de/composer.texy @@ -67,8 +67,8 @@ $db = new Nette\Database\Connection('sqlite::memory:'); ``` -Update auf die neueste Version .[#toc-update-to-the-latest-version] -=================================================================== +Pakete auf die neuesten Versionen aktualisieren .[#toc-update-packages-to-the-latest-versions] +============================================================================================== Um alle verwendeten Pakete auf die neueste Version gemäß den in `composer.json` definierten Versionsbeschränkungen zu aktualisieren, verwenden Sie den Befehl `composer update`. Zum Beispiel wird für die Abhängigkeit `"nette/database": "^3.0"` die neueste Version 3.x.x installiert, aber nicht Version 4. @@ -98,25 +98,57 @@ composer create-project nette/web-project name-of-the-project Anstelle von `name-of-the-project` sollten Sie den Namen des Verzeichnisses für Ihr Projekt angeben und den Befehl ausführen. Composer wird das Repository `nette/web-project` von GitHub holen, das bereits die Datei `composer.json` enthält, und gleich danach das Nette Framework selbst installieren. Nun müssen nur noch die [Schreibrechte |nette:troubleshooting#setting-directory-permissions] für die Verzeichnisse `temp/` und `log/` [überprüft |nette:troubleshooting#setting-directory-permissions] werden und schon kann es losgehen. +Wenn Sie wissen, mit welcher PHP-Version das Projekt gehostet werden soll, sollten Sie [diese |#PHP Version] unbedingt einrichten. + PHP-Version .[#toc-php-version] =============================== -Composer installiert immer die Versionen der Pakete, die mit der PHP-Version kompatibel sind, die Sie gerade verwenden. Das kann natürlich nicht die gleiche Version sein wie die von PHP auf Ihrem Webhost. Daher ist es sinnvoll, der Datei `composer.json` Informationen über die PHP-Version auf dem Host hinzuzufügen, damit nur die mit dem Host kompatiblen Versionen der Pakete installiert werden: +Composer installiert immer die Versionen der Pakete, die mit der PHP-Version kompatibel sind, die Sie gerade verwenden (oder besser gesagt, die PHP-Version, die auf der Kommandozeile verwendet wird, wenn Sie Composer starten). Das ist wahrscheinlich nicht die Version, die Ihr Webhost verwendet. Deshalb ist es sehr wichtig, dass Sie Informationen über die PHP-Version Ihres Hosts in Ihre Datei `composer.json` aufnehmen. Danach werden nur noch die Versionen der Pakete installiert, die mit dem Host kompatibel sind. + +Um zum Beispiel das Projekt auf PHP 8.2.3 einzustellen, verwenden Sie den Befehl: + +```shell +composer config platform.php 8.2.3 +``` + +So wird die Version in die Datei `composer.json` geschrieben: ```js { - "require": { - ... - }, "config": { "platform": { - "php": "7.2" # PHP version on host + "php": "8.2.3" } } } ``` +Die PHP-Versionsnummer wird jedoch auch an anderer Stelle in der Datei aufgeführt, im Abschnitt `require`. Während die erste Zahl die Version angibt, für die Pakete installiert werden, sagt die zweite Zahl, für welche Version die Anwendung selbst geschrieben wurde. +(Natürlich macht es keinen Sinn, dass diese Versionen unterschiedlich sind, daher ist die doppelte Angabe eine Redundanz). Sie setzen diese Version mit dem Befehl: + +```shell +composer require php 8.2.3 --no-update +``` + +Oder direkt in der Datei "Composer.json": + +```js +{ + "require": { + "php": "8.2.3" + } +} +``` + + +False Berichte .[#toc-false-reports] +==================================== + +Bei der Aktualisierung von Paketen oder der Änderung von Versionsnummern kommt es zu Konflikten. Ein Paket hat Anforderungen, die mit einem anderen in Konflikt stehen, und so weiter. Composer gibt jedoch gelegentlich eine falsche Meldung aus. Er meldet einen Konflikt, der nicht wirklich existiert. In diesem Fall hilft es, die Datei `composer.lock` zu löschen und es erneut zu versuchen. + +Bleibt die Fehlermeldung bestehen, dann ist sie ernst gemeint und Sie müssen ihr entnehmen, was Sie wie ändern müssen. + Packagist.org - Globales Repository .[#toc-packagist-org-global-repository] =========================================================================== diff --git a/best-practices/el/composer.texy b/best-practices/el/composer.texy index c000a0e088..44f73106e5 100644 --- a/best-practices/el/composer.texy +++ b/best-practices/el/composer.texy @@ -67,8 +67,8 @@ $db = new Nette\Database\Connection('sqlite::memory:'); ``` -Ενημέρωση στην τελευταία έκδοση .[#toc-update-to-the-latest-version] -==================================================================== +Ενημέρωση πακέτων στις τελευταίες εκδόσεις .[#toc-update-packages-to-the-latest-versions] +========================================================================================= Για να ενημερώσετε όλα τα χρησιμοποιούμενα πακέτα στην τελευταία έκδοση σύμφωνα με τους περιορισμούς έκδοσης που ορίζονται στο `composer.json` χρησιμοποιήστε την εντολή `composer update`. Για παράδειγμα, για την εξάρτηση `"nette/database": "^3.0"` θα εγκαταστήσει την τελευταία έκδοση 3.x.x, αλλά όχι την έκδοση 4. @@ -98,25 +98,57 @@ composer create-project nette/web-project name-of-the-project Αντί για το `name-of-the-project` θα πρέπει να δώσετε το όνομα του καταλόγου για το έργο σας και να εκτελέσετε την εντολή. Το Composer θα φέρει το αποθετήριο `nette/web-project` από το GitHub, το οποίο περιέχει ήδη το αρχείο `composer.json`, και αμέσως μετά θα εγκαταστήσει το ίδιο το Nette Framework. Το μόνο που απομένει είναι να [ελέγξετε τα δικαιώματα εγγραφής |nette:troubleshooting#setting-directory-permissions] στους καταλόγους `temp/` και `log/` και είστε έτοιμοι να ξεκινήσετε. +Αν γνωρίζετε σε ποια έκδοση PHP θα φιλοξενηθεί το έργο, φροντίστε να [το ρυθμίσετε |#PHP Version]. + Έκδοση PHP .[#toc-php-version] ============================== -Το Composer εγκαθιστά πάντα τις εκδόσεις των πακέτων που είναι συμβατές με την έκδοση της PHP που χρησιμοποιείτε αυτή τη στιγμή. Η οποία, βέβαια, μπορεί να μην είναι η ίδια έκδοση με την PHP του web host σας. Ως εκ τούτου, είναι χρήσιμο να προσθέσετε πληροφορίες σχετικά με την έκδοση της PHP στον κεντρικό υπολογιστή στο αρχείο `composer.json`, και τότε θα εγκατασταθούν μόνο οι εκδόσεις των πακέτων που είναι συμβατές με τον κεντρικό υπολογιστή: +Το Composer εγκαθιστά πάντα τις εκδόσεις των πακέτων που είναι συμβατές με την έκδοση της PHP που χρησιμοποιείτε αυτή τη στιγμή (ή μάλλον, την έκδοση της PHP που χρησιμοποιείται στη γραμμή εντολών όταν εκτελείτε το Composer). Η οποία πιθανότατα δεν είναι η ίδια έκδοση που χρησιμοποιεί ο web host σας. Γι' αυτό είναι πολύ σημαντικό να προσθέσετε πληροφορίες σχετικά με την έκδοση της PHP στη φιλοξενία σας στο αρχείο `composer.json`. Μετά από αυτό, θα εγκατασταθούν μόνο οι εκδόσεις των πακέτων που είναι συμβατές με τον host. + +Για παράδειγμα, για να ρυθμίσετε το έργο να τρέχει σε PHP 8.2.3, χρησιμοποιήστε την εντολή: + +```shell +composer config platform.php 8.2.3 +``` + +Έτσι γράφεται η έκδοση στο αρχείο `composer.json`: ```js { - "require": { - ... - }, "config": { "platform": { - "php": "7.2" # PHP version on host + "php": "8.2.3" } } } ``` +Ωστόσο, ο αριθμός έκδοσης της PHP αναφέρεται και σε άλλο σημείο του αρχείου, στην ενότητα `require`. Ενώ ο πρώτος αριθμός καθορίζει την έκδοση για την οποία θα εγκατασταθούν τα πακέτα, ο δεύτερος αριθμός λέει για ποια έκδοση είναι γραμμένη η ίδια η εφαρμογή. +(Φυσικά, δεν έχει νόημα αυτές οι εκδόσεις να είναι διαφορετικές, οπότε η διπλή καταχώρηση είναι πλεονασμός). Ορίζετε αυτή την έκδοση με την εντολή: + +```shell +composer require php 8.2.3 --no-update +``` + +Ή απευθείας στο αρχείο `composer.json`: + +```js +{ + "require": { + "php": "8.2.3" + } +} +``` + + +Ψευδείς αναφορές .[#toc-false-reports] +====================================== + +Όταν αναβαθμίζετε πακέτα ή αλλάζετε αριθμούς εκδόσεων, συμβαίνουν συγκρούσεις. Ένα πακέτο έχει απαιτήσεις που συγκρούονται με ένα άλλο και ούτω καθεξής. Ωστόσο, το Composer εκτυπώνει περιστασιακά ψευδή μηνύματα. Αναφέρει μια σύγκρουση που στην πραγματικότητα δεν υπάρχει. Σε αυτή την περίπτωση, βοηθάει να διαγράψετε το αρχείο `composer.lock` και να δοκιμάσετε ξανά. + +Αν το μήνυμα σφάλματος επιμένει, τότε εννοείται σοβαρά και πρέπει να διαβάσετε από αυτό τι πρέπει να τροποποιήσετε και πώς. + Packagist.org - Παγκόσμιο αποθετήριο .[#toc-packagist-org-global-repository] ============================================================================ diff --git a/best-practices/en/composer.texy b/best-practices/en/composer.texy index efee53307c..e87a29b0f7 100644 --- a/best-practices/en/composer.texy +++ b/best-practices/en/composer.texy @@ -67,8 +67,8 @@ $db = new Nette\Database\Connection('sqlite::memory:'); ``` -Update to the Latest Version -============================ +Update Packages to the Latest Versions +====================================== To update all used packages to the latest version according to version constraints defined in `composer.json` use command `composer update`. For example for dependency `"nette/database": "^3.0"` it will install the latest version 3.x.x, but not version 4. @@ -98,25 +98,57 @@ composer create-project nette/web-project name-of-the-project Instead the `name-of-the-project` you should provide the name of the directory for your project and execute the command. Composer will fetch the `nette/web-project` repository from GitHub, which already contains the `composer.json` file, and right after that install the Nette Framework itself. The only thing which remains is to [check write permissions |nette:troubleshooting#setting-directory-permissions] on directories `temp/` and `log/` and you're ready to go. +If you know what version of PHP the project will be hosted on, be sure to [set it up |#PHP Version]. + PHP Version =========== -Composer always installs those versions of packages that are compatible with the version of PHP you are currently using. Which, of course, may not be the same version as PHP on your web host. Therefore, it is useful to add information about the PHP version on the host to the `composer.json` file, and then only versions of packages compatible with host will be installed: +Composer always installs the versions of packages that are compatible with the version of PHP you are currently using (or rather, the version of PHP used on the command line when you run Composer). Which is probably not the same version your web host is using. That's why it's very important to add information about the PHP version on your hosting to your `composer.json` file. After that, only versions of packages compatible with the host will be installed. + +For example, to set the project to run on PHP 8.2.3, use the command: + +```shell +composer config platform.php 8.2.3 +``` + +This is how the version is written to the `composer.json` file: ```js { - "require": { - ... - }, "config": { "platform": { - "php": "7.2" # PHP version on host + "php": "8.2.3" } } } ``` +However, the PHP version number is also listed elsewhere in the file, in the `require` section. While the first number specifies the version for which packages will be installed, the second number tells what version the application itself is written for. +(Of course, it doesn't make sense for these versions to be different, so double entry is a redundancy.) You set this version with the command: + +```shell +composer require php 8.2.3 --no-update +``` + +Or directly in the `composer.json` file: + +```js +{ + "require": { + "php": "8.2.3" + } +} +``` + + +False Reports +============= + +When upgrading packages or changing version numbers, conflicts happen. One package has requirements that conflict with another and so on. However, Composer occasionally prints a false messages. It reports a conflict that doesn't really exist. In this case, it helps to delete the `composer.lock` file and try again. + +If the error message persists, then it is meant seriously and you need to read from it what to modify and how. + Packagist.org - Global Repository ================================= diff --git a/best-practices/es/composer.texy b/best-practices/es/composer.texy index 2757b5e7de..30f4d11000 100644 --- a/best-practices/es/composer.texy +++ b/best-practices/es/composer.texy @@ -67,8 +67,8 @@ $db = new Nette\Database\Connection('sqlite::memory:'); ``` -Actualizar a la última versión .[#toc-update-to-the-latest-version] -=================================================================== +Actualizar paquetes a las últimas versiones .[#toc-update-packages-to-the-latest-versions] +========================================================================================== Para actualizar todos los paquetes utilizados a la última versión según las restricciones de versión definidas en `composer.json` utilice el comando `composer update`. Por ejemplo, para la dependencia `"nette/database": "^3.0"` instalará la última versión 3.x.x, pero no la versión 4. @@ -98,25 +98,57 @@ composer create-project nette/web-project name-of-the-project En lugar de `name-of-the-project` debe proporcionar el nombre del directorio para su proyecto y ejecutar el comando. Composer obtendrá el repositorio `nette/web-project` de GitHub, que ya contiene el archivo `composer.json`, y justo después instalará el propio Nette Framework. La única cosa que queda es [comprobar los permisos de escritura |nette:troubleshooting#setting-directory-permissions] en los directorios `temp/` y `log/` y ya está listo para ir. +Si sabes en qué versión de PHP se alojará el proyecto, asegúrate de [configurarlo |#PHP Version]. + Versión PHP .[#toc-php-version] =============================== -Composer siempre instala las versiones de los paquetes que son compatibles con la versión de PHP que está utilizando actualmente. Que, por supuesto, puede no ser la misma versión que PHP en su host web. Por lo tanto, es útil añadir información sobre la versión de PHP en el host al archivo `composer.json`, y entonces sólo se instalarán las versiones de paquetes compatibles con el host: +Composer siempre instala las versiones de los paquetes que son compatibles con la versión de PHP que está utilizando actualmente (o más bien, la versión de PHP utilizada en la línea de comandos cuando se ejecuta Composer). Que probablemente no es la misma versión que utiliza su proveedor de alojamiento web. Por eso es muy importante añadir información sobre la versión de PHP de tu alojamiento a tu archivo `composer.json`. Después de eso, sólo se instalarán las versiones de paquetes compatibles con el host. + +Por ejemplo, para configurar el proyecto para que se ejecute en PHP 8.2.3, utilice el comando: + +```shell +composer config platform.php 8.2.3 +``` + +Así se escribe la versión en el archivo `composer.json`: ```js { - "require": { - ... - }, "config": { "platform": { - "php": "7.2" # PHP version on host + "php": "8.2.3" } } } ``` +Sin embargo, el número de versión de PHP también aparece en otra parte del archivo, en la sección `require`. Mientras que el primer número especifica la versión para la que se instalarán los paquetes, el segundo indica para qué versión está escrita la aplicación. +(Por supuesto, no tiene sentido que estas versiones sean diferentes, así que la doble entrada es una redundancia). Esta versión se establece con el comando + +```shell +composer require php 8.2.3 --no-update +``` + +O directamente en el archivo `composer.json`: + +```js +{ + "require": { + "php": "8.2.3" + } +} +``` + + +Informes falsos .[#toc-false-reports] +===================================== + +Cuando se actualizan paquetes o se cambian los números de versión, surgen conflictos. Un paquete tiene requisitos que entran en conflicto con otro y así sucesivamente. Sin embargo, Composer ocasionalmente imprime un mensaje falso. Informa de un conflicto que realmente no existe. En este caso, ayuda borrar el archivo `composer.lock` e intentarlo de nuevo. + +Si el mensaje de error persiste, entonces va en serio y hay que leer en él qué modificar y cómo. + Packagist.org - Repositorio global .[#toc-packagist-org-global-repository] ========================================================================== diff --git a/best-practices/fr/composer.texy b/best-practices/fr/composer.texy index a79bb5491d..55a6db24b8 100644 --- a/best-practices/fr/composer.texy +++ b/best-practices/fr/composer.texy @@ -67,8 +67,8 @@ $db = new Nette\Database\Connection('sqlite::memory:'); ``` -Mise à jour de la dernière version .[#toc-update-to-the-latest-version] -======================================================================= +Mise à jour des paquets vers les dernières versions .[#toc-update-packages-to-the-latest-versions] +================================================================================================== Pour mettre à jour tous les paquets utilisés à la dernière version selon les contraintes de version définies dans `composer.json`, utilisez la commande `composer update`. Par exemple, pour la dépendance `"nette/database": "^3.0"`, elle installera la dernière version 3.x.x, mais pas la version 4. @@ -98,25 +98,57 @@ composer create-project nette/web-project name-of-the-project A la place de `name-of-the-project`, vous devez fournir le nom du répertoire de votre projet et exécuter la commande. Composer ira chercher le dépôt `nette/web-project` de GitHub, qui contient déjà le fichier `composer.json`, et juste après, il installera le Framework Nette lui-même. La seule chose qui reste à faire est de [vérifier les droits d'écriture |nette:troubleshooting#setting-directory-permissions] sur les répertoires `temp/` et `log/` et vous êtes prêt à partir. +Si vous connaissez la version de PHP sur laquelle le projet sera hébergé, assurez-vous de la [configurer |#PHP Version]. + Version PHP .[#toc-php-version] =============================== -Composer installe toujours les versions des paquets qui sont compatibles avec la version de PHP que vous utilisez actuellement. Cette version peut, bien entendu, ne pas être la même que celle de PHP sur votre hôte Web. Il est donc utile d'ajouter au fichier `composer.json` des informations sur la version de PHP sur l'hôte, et seules les versions des paquets compatibles avec l'hôte seront alors installées : +Composer installe toujours les versions des paquets compatibles avec la version de PHP que vous utilisez actuellement (ou plutôt, la version de PHP utilisée en ligne de commande lorsque vous lancez Composer). Ce qui n'est probablement pas la même version que celle utilisée par votre hébergeur. C'est pourquoi il est très important d'ajouter l'information sur la version de PHP de votre hébergement dans votre fichier `composer.json`. Ensuite, seules les versions des paquets compatibles avec l'hébergeur seront installées. + +Par exemple, pour configurer le projet pour qu'il fonctionne avec PHP 8.2.3, utilisez la commande : + +```shell +composer config platform.php 8.2.3 +``` + +C'est ainsi que la version est écrite dans le fichier `composer.json`: ```js { - "require": { - ... - }, "config": { "platform": { - "php": "7.2" # PHP version on host + "php": "8.2.3" } } } ``` +Cependant, le numéro de version de PHP est également indiqué ailleurs dans le fichier, dans la section `require`. Alors que le premier numéro spécifie la version pour laquelle les paquets seront installés, le second numéro indique la version pour laquelle l'application elle-même est écrite. +(Bien sûr, il n'y a pas de sens à ce que ces versions soient différentes, donc la double entrée est une redondance). Vous définissez cette version à l'aide de la commande : + +```shell +composer require php 8.2.3 --no-update +``` + +Ou directement dans le fichier `composer.json` : + +```js +{ + "require" : { + "php" : "8.2.3" + } +} +``` + + +Faux rapports .[#toc-false-reports] +=================================== + +Lors de la mise à niveau de paquets ou du changement de numéro de version, des conflits se produisent. Un paquet a des exigences qui entrent en conflit avec un autre, et ainsi de suite. Cependant, Composer imprime parfois un faux message. Il signale un conflit qui n'existe pas réellement. Dans ce cas, il est utile de supprimer le fichier `composer.lock` et de réessayer. + +Si le message d'erreur persiste, c'est qu'il est sérieux et que vous devez y lire ce qu'il faut modifier et comment. + Packagist.org - Dépôt global .[#toc-packagist-org-global-repository] ==================================================================== diff --git a/best-practices/hu/composer.texy b/best-practices/hu/composer.texy index 4cf01dcd63..1cfeab9319 100644 --- a/best-practices/hu/composer.texy +++ b/best-practices/hu/composer.texy @@ -67,8 +67,8 @@ $db = new Nette\Database\Connection('sqlite::memory:'); ``` -Frissítés a legújabb verzióra .[#toc-update-to-the-latest-version] -================================================================== +Csomagok frissítése a legújabb verziókra .[#toc-update-packages-to-the-latest-versions] +======================================================================================= Az összes használt csomag frissítéséhez a `composer.json` pontban meghatározott verziókövetelményeknek megfelelően a `composer update` paranccsal frissítheti az összes használt csomagot a legújabb verzióra. Például a `"nette/database": "^3.0"` függőség esetében a parancs a legújabb, 3.x.x.x verziót fogja telepíteni, de a 4-es verziót nem. @@ -98,25 +98,57 @@ composer create-project nette/web-project name-of-the-project A `name-of-the-project` helyett meg kell adnia a projekt könyvtárának nevét, és végre kell hajtania a parancsot. A Composer le fogja hívni a `nette/web-project` tárolót a GitHubról, amely már tartalmazza a `composer.json` fájlt, és rögtön ezután telepíti magát a Nette keretrendszert. Már csak a `temp/` és a `log/` könyvtárak [írási jogosultságainak ellenőrzése |nette:troubleshooting#setting-directory-permissions] van hátra, és már mehet is. +Ha tudod, hogy a PHP melyik verzióján lesz a projekt, mindenképpen [állítsd be |#PHP Version]. + PHP verzió .[#toc-php-version] ============================== -A Composer mindig azokat a csomagverziókat telepíti, amelyek kompatibilisek a PHP aktuálisan használt verziójával. Ami természetesen nem biztos, hogy ugyanaz a verzió, mint a PHP az Ön webtárhelyén. Ezért hasznos, ha a `composer.json` fájlhoz hozzáadjuk a tárhelyen lévő PHP verziójára vonatkozó információt, és akkor csak a tárhelyen lévő csomagoknak a tárhelyhez kompatibilis verziói lesznek telepítve: +A Composer mindig a csomagok azon verzióit telepíti, amelyek kompatibilisek a PHP aktuálisan használt verziójával (vagy inkább a PHP-nak a parancssorban a Composer futtatásakor használt verziójával). Ami valószínűleg nem ugyanaz a verzió, mint amit a webtárhelye használ. Ezért nagyon fontos, hogy a `composer.json` fájlodhoz hozzáadj információt a tárhelyeden használt PHP verziójáról. Ezután csak a tárhelyével kompatibilis csomagok verziói fognak települni. + +Például, ha a projektet a PHP 8.2.3-as verzióján szeretné futtatni, használja a következő parancsot: + +```shell +composer config platform.php 8.2.3 +``` + +Így íródik a verzió a `composer.json` fájlba: ```js { - "require": { - ... - }, "config": { "platform": { - "php": "7.2" # PHP version on host + "php": "8.2.3" } } } ``` +A PHP verziószáma azonban a fájlban máshol is szerepel, a `require` szakaszban. Míg az első szám azt a verziót adja meg, amelyhez a csomagokat telepíteni kell, addig a második szám azt mondja meg, hogy maga az alkalmazás milyen verzióra íródott. +(Természetesen nincs értelme, hogy ezek a verziók különbözőek legyenek, így a dupla bejegyzés csak redundancia.) Ezt a verziót a paranccsal állítjuk be: + +```shell +composer require php 8.2.3 --no-update +``` + +Vagy közvetlenül a `composer.json` fájlban: + +```js +{ + "require": { + "php": "8.2.3" + } +} +``` + + +Hamis jelentések .[#toc-false-reports] +====================================== + +A csomagok frissítésekor vagy a verziószámok megváltoztatásakor konfliktusok fordulnak elő. Az egyik csomagnak vannak olyan követelményei, amelyek ütköznek egy másikkal, és így tovább. A Composer azonban időnként hamis üzeneteket ír ki. Olyan konfliktust jelent, amely valójában nem létezik. Ebben az esetben segít, ha törli a `composer.lock` fájlt, és újra megpróbálja. + +Ha a hibaüzenet továbbra is fennáll, akkor komolyan gondolja, és ki kell olvasni belőle, hogy mit és hogyan kell módosítani. + Packagist.org - Globális tárolóhely .[#toc-packagist-org-global-repository] =========================================================================== diff --git a/best-practices/it/composer.texy b/best-practices/it/composer.texy index 1df534cbd0..2da03f6478 100644 --- a/best-practices/it/composer.texy +++ b/best-practices/it/composer.texy @@ -67,8 +67,8 @@ $db = new Nette\Database\Connection('sqlite::memory:'); ``` -Aggiornamento alla versione più recente .[#toc-update-to-the-latest-version] -============================================================================ +Aggiornare i pacchetti alle ultime versioni .[#toc-update-packages-to-the-latest-versions] +========================================================================================== Per aggiornare tutti i pacchetti utilizzati all'ultima versione in base ai vincoli di versione definiti in `composer.json`, usare il comando `composer update`. Ad esempio, per la dipendenza `"nette/database": "^3.0"` verrà installata l'ultima versione 3.x.x, ma non la versione 4. @@ -98,25 +98,57 @@ composer create-project nette/web-project name-of-the-project Al posto di `name-of-the-project` si deve fornire il nome della directory del progetto ed eseguire il comando. Composer recupererà il repository `nette/web-project` da GitHub, che contiene già il file `composer.json`, e subito dopo installerà il framework Nette. L'unica cosa che resta da fare è [controllare i permessi di scrittura |nette:troubleshooting#setting-directory-permissions] sulle directory `temp/` e `log/` e il gioco è fatto. +Se si conosce la versione di PHP su cui verrà ospitato il progetto, assicurarsi di [impostarla |#PHP Version]. + Versione PHP .[#toc-php-version] ================================ -Composer installa sempre le versioni dei pacchetti compatibili con la versione di PHP attualmente in uso. Che, ovviamente, potrebbe non essere la stessa versione di PHP presente sul vostro host web. Per questo motivo, è utile aggiungere al file `composer.json` informazioni sulla versione di PHP presente sull'host, in modo da installare solo le versioni dei pacchetti compatibili con l'host: +Composer installa sempre le versioni dei pacchetti compatibili con la versione di PHP attualmente in uso (o meglio, la versione di PHP utilizzata dalla riga di comando quando si esegue Composer). Che probabilmente non è la stessa versione utilizzata dal vostro host web. Per questo motivo è molto importante aggiungere al file `composer.json` le informazioni sulla versione di PHP presente sul vostro hosting. In questo modo, verranno installate solo le versioni dei pacchetti compatibili con l'host. + +Per esempio, per impostare il progetto in modo che venga eseguito su PHP 8.2.3, usare il comando: + +```shell +composer config platform.php 8.2.3 +``` + +In questo modo la versione viene scritta nel file `composer.json`: ```js { - "require": { - ... - }, "config": { "platform": { - "php": "7.2" # PHP version on host + "php": "8.2.3" } } } ``` +Tuttavia, il numero di versione di PHP è elencato anche altrove nel file, nella sezione `require`. Mentre il primo numero specifica la versione per la quale verranno installati i pacchetti, il secondo numero dice per quale versione è stata scritta l'applicazione stessa. +(Naturalmente, non ha senso che queste versioni siano diverse, quindi la doppia indicazione è una ridondanza). La versione viene impostata con il comando: + +```shell +composer require php 8.2.3 --no-update +``` + +Oppure direttamente nel file `composer.json`: + +```js +{ + "require": { + "php": "8.2.3" + } +} +``` + + +Rapporti falsi .[#toc-false-reports] +==================================== + +Quando si aggiornano i pacchetti o si cambiano i numeri di versione, si verificano dei conflitti. Un pacchetto ha requisiti in conflitto con un altro e così via. Tuttavia, Composer a volte stampa dei falsi messaggi. Segnala un conflitto che in realtà non esiste. In questo caso, è utile cancellare il file `composer.lock` e riprovare. + +Se il messaggio di errore persiste, allora è da intendersi seriamente e bisogna leggere da esso cosa modificare e come. + Packagist.org - Repository globale .[#toc-packagist-org-global-repository] ========================================================================== diff --git a/best-practices/pl/composer.texy b/best-practices/pl/composer.texy index 38190f3851..67cd6af820 100644 --- a/best-practices/pl/composer.texy +++ b/best-practices/pl/composer.texy @@ -67,8 +67,8 @@ $db = new Nette\Database\Connection('sqlite::memory:'); ``` -Aktualizacja do najnowszych wersji .[#toc-update-to-the-latest-version] -======================================================================= +Aktualizacja pakietów do najnowszych wersji .[#toc-update-packages-to-the-latest-versions] +========================================================================================== Polecenie `composer update` jest odpowiedzialne za aktualizację używanych bibliotek do najnowszych wersji zgodnie z warunkami określonymi w `composer.json`. Na przykład dla zależności `"nette/database": "^3.0"` zainstaluje najnowszą wersję 3.x.x, ale już nie wersję 4. @@ -98,25 +98,57 @@ composer create-project nette/web-project nazev-projektu Wpisz nazwę katalogu dla swojego projektu jako `nazev-projektu` i zatwierdź. Composer pobiera z GitHuba repozytorium `nette/web-project`, które zawiera już `composer.json`, a następnie Nette Framework. Powinieneś tylko [ustawić uprawnienia |nette:troubleshooting#Setting-Directory-Permissions] do [zapisu |nette:troubleshooting#Setting-Directory-Permissions] na `temp/` i `log/` i twój projekt powinien ożyć. +Jeśli wiesz, na jakiej wersji PHP będzie hostowany projekt, koniecznie [go |#PHP Version] skonfiguruj. + Wersja PHP .[#toc-php-version] ============================== -Composer zawsze instaluje wersje pakietów, które są zgodne z wersją PHP, której aktualnie używasz. Co oczywiście może nie być tą samą wersją, której używa twój hosting. Dlatego warto dodać do pliku `composer.json` informację o wersji PHP na Twoim hostingu, a wtedy zainstalowane zostaną tylko wersje pakietów zgodne z Twoim hostingiem: +Composer zawsze instaluje wersje pakietów, które są kompatybilne z wersją PHP, której aktualnie używasz (lub raczej z wersją PHP używaną w linii poleceń, gdy uruchamiasz Composera). Co prawdopodobnie nie jest tą samą wersją, której używa Twój hosting. Dlatego bardzo ważne jest dodanie informacji o wersji PHP na Twoim hostingu do pliku `composer.json`. Następnie zostaną zainstalowane tylko wersje pakietów zgodne z hostem. + +Na przykład, aby ustawić projekt tak, aby działał na PHP 8.2.3, użyj polecenia: + +```shell +composer config platform.php 8.2.3 +``` + +W ten sposób wersja jest zapisywana do pliku `composer.json`: ```js { - "require": { - ... - }, "config": { "platform": { - "php": "7.2" # verze PHP na hostingu + "php": "8.2.3" } } } ``` +Jednakże, numer wersji PHP jest również podany w innym miejscu pliku, w sekcji `require`. Podczas gdy pierwszy numer określa wersję, dla której zostaną zainstalowane pakiety, drugi mówi, dla jakiej wersji została napisana sama aplikacja. +(Oczywiście nie ma sensu, aby te wersje były różne, więc podwójny wpis jest redundancją). Wersję tę ustawiasz poleceniem: + +```shell +composer require php 8.2.3 --no-update +``` + +Lub bezpośrednio w pliku `composer.json`: + +```js +{ + "require": { + "php": "8.2.3" + } +} +``` + + +Fałszywe raporty .[#toc-false-reports] +====================================== + +Podczas aktualizacji pakietów lub zmiany numerów wersji zdarzają się konflikty. Jeden pakiet ma wymagania, które są sprzeczne z innym i tak dalej. Jednakże, Composer czasami drukuje fałszywe wiadomości. Zgłasza konflikt, który tak naprawdę nie istnieje. W takim przypadku pomaga usunięcie pliku `composer.lock` i ponowna próba. + +Jeśli komunikat o błędzie utrzymuje się, to znaczy, że jest on poważny i trzeba z niego wyczytać, co i jak należy zmodyfikować. + Packagist.org - centralne repozytorium .[#toc-packagist-org-global-repository] ============================================================================== diff --git a/best-practices/pt/composer.texy b/best-practices/pt/composer.texy index b3d69702a0..e0f7603a86 100644 --- a/best-practices/pt/composer.texy +++ b/best-practices/pt/composer.texy @@ -67,8 +67,8 @@ $db = new Nette\Database\Connection('sqlite::memory:'); ``` -Atualização para a versão mais recente .[#toc-update-to-the-latest-version] -=========================================================================== +Pacotes de atualização para as versões mais recentes .[#toc-update-packages-to-the-latest-versions] +=================================================================================================== Para atualizar todos os pacotes usados para a versão mais recente de acordo com as restrições de versão definidas em `composer.json` use o comando `composer update`. Por exemplo, para a dependência `"nette/database": "^3.0"` será instalada a versão mais recente 3.x.x, mas não a versão 4. @@ -98,25 +98,57 @@ composer create-project nette/web-project name-of-the-project Em vez disso, o `name-of-the-project` você deve fornecer o nome do diretório para seu projeto e executar o comando. O compositor buscará o repositório `nette/web-project` no GitHub, que já contém o arquivo `composer.json`, e logo em seguida instalará o próprio Nette Framework. A única coisa que resta é [verificar as permissões de escrita |nette:troubleshooting#setting-directory-permissions] nos diretórios `temp/` e `log/` e você está pronto para ir. +Se você sabe em que versão do PHP o projeto será hospedado, não deixe de [configurá-lo |#PHP Version]. + Versão PHP .[#toc-php-version] ============================== -O Composer sempre instala aquelas versões de pacotes que são compatíveis com a versão do PHP que você está usando atualmente. Que, é claro, pode não ser a mesma versão do PHP em seu web host. Portanto, é útil adicionar informações sobre a versão do PHP no host ao arquivo `composer.json`, e então somente as versões dos pacotes compatíveis com o host serão instaladas: +O Composer sempre instala as versões dos pacotes que são compatíveis com a versão do PHP que você está usando atualmente (ou melhor, a versão do PHP usada na linha de comando quando você executa o Composer). Que provavelmente não é a mesma versão que seu web host está usando. É por isso que é muito importante adicionar informações sobre a versão do PHP em sua hospedagem ao seu arquivo `composer.json`. Depois disso, somente versões de pacotes compatíveis com o host serão instaladas. + +Por exemplo, para configurar o projeto para rodar no PHP 8.2.3, use o comando: + +```shell +composer config platform.php 8.2.3 +``` + +Esta é a forma como a versão é escrita no arquivo `composer.json`: ```js { - "require": { - ... - }, "config": { "platform": { - "php": "7.2" # PHP version on host + "php": "8.2.3" } } } ``` +No entanto, o número da versão PHP também está listado em outra parte do arquivo, na seção `require`. Enquanto o primeiro número especifica a versão para a qual os pacotes serão instalados, o segundo número diz para qual versão o aplicativo em si é escrito. +(É claro, não faz sentido que estas versões sejam diferentes, portanto, a entrada dupla é uma redundância). Você define esta versão com o comando: + +```shell +composer require php 8.2.3 --no-update +``` + +Ou diretamente no arquivo `composer.json': + +```js +{ + "require": { + "php": "8.2.3" + } +} +``` + + +Falsos relatórios .[#toc-false-reports] +======================================= + +Ao atualizar pacotes ou mudar números de versão, conflitos acontecem. Um pacote tem requisitos que entram em conflito com outro e assim por diante. No entanto, o Composer ocasionalmente imprime uma mensagem falsa. Ele relata um conflito que realmente não existe. Neste caso, ele ajuda a apagar o arquivo `composer.lock` e tenta novamente. + +Se a mensagem de erro persistir, então o objetivo é sério e você precisa ler a partir dela o que modificar e como. + Packagist.org - Repositório Global .[#toc-packagist-org-global-repository] ========================================================================== diff --git a/best-practices/ro/composer.texy b/best-practices/ro/composer.texy index 870bc7a030..4598ea703c 100644 --- a/best-practices/ro/composer.texy +++ b/best-practices/ro/composer.texy @@ -67,8 +67,8 @@ $db = new Nette\Database\Connection('sqlite::memory:'); ``` -Actualizare la cea mai recentă versiune .[#toc-update-to-the-latest-version] -============================================================================ +Actualizarea pachetelor la cele mai recente versiuni .[#toc-update-packages-to-the-latest-versions] +=================================================================================================== Pentru a actualiza toate pachetele utilizate la cea mai recentă versiune în conformitate cu constrângerile de versiune definite în `composer.json`, utilizați comanda `composer update`. De exemplu, pentru dependența `"nette/database": "^3.0"`, se va instala cea mai recentă versiune 3.x.x, dar nu și versiunea 4. @@ -98,25 +98,57 @@ composer create-project nette/web-project name-of-the-project În loc de `name-of-the-project` trebuie să furnizați numele directorului pentru proiectul dumneavoastră și să executați comanda. Composer va prelua depozitul `nette/web-project` de pe GitHub, care conține deja fișierul `composer.json`, și imediat după aceea va instala chiar Nette Framework. Singurul lucru care rămâne este să [verificați permisiunile de scriere |nette:troubleshooting#setting-directory-permissions] pe directoarele `temp/` și `log/` și sunteți gata de plecare. +Dacă știți pe ce versiune de PHP va fi găzduit proiectul, nu uitați să [o configura |#PHP Version]ți. + Versiunea PHP .[#toc-php-version] ================================= -Composer instalează întotdeauna acele versiuni de pachete care sunt compatibile cu versiunea de PHP pe care o utilizați în prezent. Care, bineînțeles, poate să nu fie aceeași versiune cu cea a PHP de pe gazda dvs. web. Prin urmare, este util să adăugați informații despre versiunea PHP de pe gazdă în fișierul `composer.json`, iar apoi vor fi instalate numai versiunile de pachete compatibile cu gazda: +Composer instalează întotdeauna versiunile de pachete care sunt compatibile cu versiunea de PHP pe care o folosiți în prezent (sau, mai degrabă, versiunea de PHP utilizată în linia de comandă atunci când executați Composer). Care, probabil, nu este aceeași versiune pe care o folosește gazda dvs. web. De aceea, este foarte important să adăugați informații despre versiunea PHP de pe gazda dumneavoastră în fișierul `composer.json`. După aceea, vor fi instalate numai versiunile de pachete compatibile cu gazda. + +De exemplu, pentru a seta proiectul să ruleze pe PHP 8.2.3, utilizați comanda: + +```shell +composer config platform.php 8.2.3 +``` + +În acest fel, versiunea este scrisă în fișierul `composer.json`: ```js { - "require": { - ... - }, "config": { "platform": { - "php": "7.2" # PHP version on host + "php": "8.2.3" } } } ``` +Cu toate acestea, numărul versiunii PHP este, de asemenea, listat în altă parte în fișier, în secțiunea `require`. În timp ce primul număr specifică versiunea pentru care vor fi instalate pachetele, al doilea număr indică versiunea pentru care este scrisă aplicația în sine. +(Desigur, nu are sens ca aceste versiuni să fie diferite, așa că dubla înscriere este o redundanță). Setați această versiune cu ajutorul comenzii: + +```shell +composer require php 8.2.3 --no-update +``` + +Sau direct în fișierul `composer.json`: + +```js +{ + "require": { + "php": "8.2.3" + } +} +``` + + +Rapoarte false .[#toc-false-reports] +==================================== + +La actualizarea pachetelor sau la schimbarea numerelor de versiune, apar conflicte. Un pachet are cerințe care intră în conflict cu un alt pachet și așa mai departe. Cu toate acestea, Composer tipărește ocazional un mesaj fals. Acesta raportează un conflict care nu există cu adevărat. În acest caz, este util să ștergeți fișierul `composer.lock` și să încercați din nou. + +Dacă mesajul de eroare persistă, atunci acesta are o intenție serioasă și trebuie să citiți din el ce trebuie să modificați și cum. + Packagist.org - Depozitul global .[#toc-packagist-org-global-repository] ======================================================================== diff --git a/best-practices/ru/composer.texy b/best-practices/ru/composer.texy index c01a91dbc6..8b6c3fca4a 100644 --- a/best-practices/ru/composer.texy +++ b/best-practices/ru/composer.texy @@ -67,8 +67,8 @@ $db = new Nette\Database\Connection('sqlite::memory:'); ``` -Обновление до последней версии .[#toc-update-to-the-latest-version] -=================================================================== +Обновление пакетов до последних версий .[#toc-update-packages-to-the-latest-versions] +===================================================================================== Для обновления всех используемых пакетов до последней версии в соответствии с ограничениями версий, определенными в файле `composer.json`, используйте команду `composer update`. Например, для зависимости `"nette/database": "^3.0"` будет установлена последняя версия 3.x.x, но не версия 4. @@ -98,25 +98,57 @@ composer create-project nette/web-project name-of-the-project Вместо `name-of-the-project` укажите имя каталога для вашего проекта и выполните команду. Composer получит репозиторий `nette/web-project` с GitHub, который уже содержит файл `composer.json`, и сразу после этого установит сам фреймворк Nette. Осталось только [проверить права на запись |nette:troubleshooting#Setting-Directory-Permissions] для директорий `temp/` и `log/`, и вы готовы к работе. +Если вы знаете, на какой версии PHP будет размещен проект, обязательно установите [ее |#PHP Version]. + Версия PHP .[#toc-php-version] ============================== -Composer всегда устанавливает те версии пакетов, которые совместимы с версией PHP, используемой вами в данный момент. Это, конечно, может быть не та версия PHP, которая установлена на вашем хосте. Поэтому полезно добавить информацию о версии PHP на хосте в файл `composer.json`, и тогда будут установлены только версии пакетов, совместимые с хостом: +Composer всегда устанавливает версии пакетов, совместимые с версией PHP, которую вы используете в данный момент (точнее, версию PHP, используемую в командной строке при запуске Composer). А это, скорее всего, не та версия, которую использует ваш веб-хост. Поэтому очень важно добавить информацию о версии PHP на вашем хостинге в файл `composer.json`. После этого будут установлены только версии пакетов, совместимые с хостом. + +Например, чтобы настроить проект для работы на PHP 8.2.3, используйте команду: + +```shell +composer config platform.php 8.2.3 +``` + +Таким образом версия записывается в файл `composer.json`: ```js { - "require": { - ... - }, "config": { "platform": { - "php": "7.2" # PHP версия сервера + "php": "8.2.3" } } } ``` +Однако номер версии PHP также указывается в другом месте файла, в секции `require`. В то время как первое число указывает версию, для которой будут установлены пакеты, второе число говорит о том, для какой версии написано само приложение. +(Конечно, нет смысла в том, чтобы эти версии были разными, поэтому двойная запись является излишеством). Вы устанавливаете эту версию с помощью команды: + +```shell +composer require php 8.2.3 --no-update +``` + +Или непосредственно в файле `composer.json`: + +```js +{ + "require": { + "php": "8.2.3" + } +} +``` + + +Ложные отчеты .[#toc-false-reports] +=================================== + +При обновлении пакетов или изменении номеров версий возникают конфликты. Один пакет имеет требования, которые конфликтуют с другим и так далее. Однако иногда Composer выдает ложные сообщения. Он сообщает о конфликте, которого на самом деле не существует. В этом случае следует удалить файл `composer.lock` и повторить попытку. + +Если сообщение об ошибке не исчезает, значит, оно имеет серьезное значение, и вам нужно прочитать из него, что и как нужно изменить. + Packagist.org — глобальный репозиторий .[#toc-packagist-org-global-repository] ============================================================================== diff --git a/best-practices/sl/composer.texy b/best-practices/sl/composer.texy index bd19006e78..6a1c5ec055 100644 --- a/best-practices/sl/composer.texy +++ b/best-practices/sl/composer.texy @@ -67,8 +67,8 @@ $db = new Nette\Database\Connection('sqlite::memory:'); ``` -Posodobitev na najnovejšo različico .[#toc-update-to-the-latest-version] -======================================================================== +Posodobitev paketov na najnovejše različice .[#toc-update-packages-to-the-latest-versions] +========================================================================================== Za posodobitev vseh uporabljenih paketov na najnovejšo različico v skladu z omejitvami različic, opredeljenimi v `composer.json`, uporabite ukaz `composer update`. Na primer za odvisnost `"nette/database": "^3.0"` bo namestil najnovejšo različico 3.x.x, ne pa tudi različice 4. @@ -98,25 +98,57 @@ composer create-project nette/web-project name-of-the-project Namesto `name-of-the-project` morate navesti ime imenika za vaš projekt in izvesti ukaz. Composer bo iz GitHuba pobral skladišče `nette/web-project`, ki že vsebuje datoteko `composer.json`, in takoj zatem namestil samo ogrodje Nette. Edina stvar, ki vam preostane, je, da [preverite dovoljenja za pisanje |nette:troubleshooting#setting-directory-permissions] v imenikih `temp/` in `log/`, in že ste pripravljeni za delo. +Če veste, na kateri različici PHP bo projekt gostoval, [jo |#PHP Version] obvezno [nastavite |#PHP Version]. + Različica PHP .[#toc-php-version] ================================= -Composer vedno namesti tiste različice paketov, ki so združljive z različico PHP, ki jo trenutno uporabljate. Ta različica seveda ni nujno enaka različici PHP v vašem spletnem gostitelju. Zato je koristno, da v datoteko `composer.json` dodate informacije o različici PHP na gostitelju, nato pa bodo nameščene samo različice paketov, ki so združljive z gostiteljem: +Composer vedno namesti različice paketov, ki so združljive z različico PHP, ki jo trenutno uporabljate (oziroma z različico PHP, ki je uporabljena v ukazni vrstici, ko zaženete Composer). Ta različica verjetno ni enaka različici, ki jo uporablja vaš spletni gostitelj. Zato je zelo pomembno, da v datoteko `composer.json` dodate informacije o različici PHP na vašem gostovanju. Nato bodo nameščene samo različice paketov, ki so združljive z gostiteljem. + +Na primer, če želite projekt nastaviti tako, da bo deloval na PHP 8.2.3, uporabite ukaz: + +```shell +composer config platform.php 8.2.3 +``` + +Tako se različica zapiše v datoteko `composer.json`: ```js { - "require": { - ... - }, "config": { "platform": { - "php": "7.2" # PHP version on host + "php": "8.2.3" } } } ``` +Vendar je številka različice PHP navedena tudi na drugem mestu v datoteki, v razdelku `require`. Medtem ko prva številka določa različico, za katero bodo nameščeni paketi, druga številka pove, za katero različico je napisana sama aplikacija. +(Seveda ni smiselno, da bi se različici razlikovali, zato je dvojni vpis odveč.) To različico nastavite z ukazom: + +```shell +composer require php 8.2.3 --no-update +``` + +Ali neposredno v datoteki `composer.json`: + +```js +{ + "require": { + "php": "8.2.3" + } +} +``` + + +Napačna poročila .[#toc-false-reports] +====================================== + +Pri nadgradnji paketov ali spreminjanju številk različic prihaja do konfliktov. En paket ima zahteve, ki so v nasprotju z drugim, in tako naprej. Vendar program Composer občasno izpiše lažna sporočila. Poroča o konfliktu, ki v resnici ne obstaja. V tem primeru pomaga, če izbrišete datoteko `composer.lock` in poskusite znova. + +Če sporočilo o napaki vztraja, je mišljeno resno in iz njega morate razbrati, kaj in kako morate spremeniti. + Packagist.org - Globalni repozitorij .[#toc-packagist-org-global-repository] ============================================================================ diff --git a/best-practices/tr/composer.texy b/best-practices/tr/composer.texy index 23063d192c..77373550ba 100644 --- a/best-practices/tr/composer.texy +++ b/best-practices/tr/composer.texy @@ -67,8 +67,8 @@ $db = new Nette\Database\Connection('sqlite::memory:'); ``` -En Son Sürüme Güncelleyin .[#toc-update-to-the-latest-version] -============================================================== +Paketleri En Son Sürümlere Güncelleyin .[#toc-update-packages-to-the-latest-versions] +===================================================================================== Kullanılan tüm paketleri `composer.json` adresinde tanımlanan sürüm kısıtlamalarına göre en son sürüme güncellemek için `composer update` komutunu kullanın. Örneğin `"nette/database": "^3.0"` bağımlılığı için en son 3.x.x sürümünü yükleyecek, ancak sürüm 4'ü yüklemeyecektir. @@ -98,25 +98,57 @@ composer create-project nette/web-project name-of-the-project Bunun yerine `name-of-the-project` adresine projenizin dizininin adını girmeli ve komutu çalıştırmalısınız. Composer, `composer.json` dosyasını zaten içeren GitHub'dan `nette/web-project` deposunu getirecek ve hemen ardından Nette Framework'ün kendisini yükleyecektir. Geriye kalan tek şey `temp/` ve `log/` dizinleri üzerindeki [yazma izinlerini kontrol |nette:troubleshooting#setting-directory-permissions] etmektir ve artık hazırsınız. +Projenin hangi PHP sürümünde barındırılacağını biliyorsanız, [bunu ayarladığınızdan |#PHP Version] emin olun. + PHP Sürümü .[#toc-php-version] ============================== -Composer her zaman kullanmakta olduğunuz PHP sürümü ile uyumlu olan paket sürümlerini yükler. Elbette bu, web barındırıcınızdaki PHP ile aynı sürüm olmayabilir. Bu nedenle, `composer.json` dosyasına ana bilgisayardaki PHP sürümü hakkında bilgi eklemek yararlıdır ve ardından yalnızca ana bilgisayarla uyumlu paket sürümleri yüklenecektir: +Composer her zaman kullanmakta olduğunuz PHP sürümüyle (ya da Composer'ı çalıştırdığınızda komut satırında kullanılan PHP sürümüyle) uyumlu olan paket sürümlerini yükler. Bu sürüm muhtemelen web barındırıcınızın kullandığı sürümle aynı değildir. Bu nedenle `composer.json` dosyanıza barındırıcınızdaki PHP sürümü hakkında bilgi eklemeniz çok önemlidir. Bundan sonra, yalnızca ana bilgisayarla uyumlu paket sürümleri yüklenecektir. + +Örneğin, projeyi PHP 8.2.3 üzerinde çalışacak şekilde ayarlamak için şu komutu kullanın: + +```shell +composer config platform.php 8.2.3 +``` + +Sürüm `composer.json` dosyasına bu şekilde yazılır: ```js { - "require": { - ... - }, "config": { "platform": { - "php": "7.2" # PHP version on host + "php": "8.2.3" } } } ``` +Bununla birlikte, PHP sürüm numarası dosyanın başka bir yerinde, `require` bölümünde de listelenir. İlk numara paketlerin hangi sürüm için yükleneceğini belirtirken, ikinci numara uygulamanın kendisinin hangi sürüm için yazıldığını söyler. +(Tabii ki, bu sürümlerin farklı olması mantıklı değildir, bu nedenle çift giriş bir fazlalıktır). Bu sürümü şu komutla ayarlarsınız: + +```shell +composer require php 8.2.3 --no-update +``` + +Veya doğrudan `composer.json` dosyasında: + +```js +{ + "require": { + "php": "8.2.3" + } +} +``` + + +Yanlış Raporlar .[#toc-false-reports] +===================================== + +Paketleri yükseltirken veya sürüm numaralarını değiştirirken çakışmalar meydana gelir. Bir paketin gereksinimleri diğeriyle çakışır ve bu böyle devam eder. Ancak, Composer bazen yanlış bir mesaj yazdırır. Gerçekte var olmayan bir çakışma bildirir. Bu durumda, `composer.lock` dosyasını silmek ve tekrar denemek yardımcı olur. + +Hata mesajı devam ederse, ciddi bir mesajdır ve neyi nasıl değiştireceğinizi okumanız gerekir. + Packagist.org - Küresel Depo .[#toc-packagist-org-global-repository] ==================================================================== diff --git a/best-practices/uk/composer.texy b/best-practices/uk/composer.texy index dfe611d1ab..32ebb6a3a1 100644 --- a/best-practices/uk/composer.texy +++ b/best-practices/uk/composer.texy @@ -67,8 +67,8 @@ $db = new Nette\Database\Connection('sqlite::memory:'); ``` -Оновлення до останньої версії .[#toc-update-to-the-latest-version] -================================================================== +Оновлення пакетів до останніх версій .[#toc-update-packages-to-the-latest-versions] +=================================================================================== Для оновлення всіх використовуваних пакетів до останньої версії відповідно до обмежень версій, визначених у файлі `composer.json`, використовуйте команду `composer update`. Наприклад, для залежності `"nette/database": "^3.0"` буде встановлено останню версію 3.x.x, але не версію 4. @@ -98,25 +98,57 @@ composer create-project nette/web-project name-of-the-project Замість `name-of-the-project` вкажіть ім'я каталогу для вашого проєкту і виконайте команду. Composer отримає репозиторій `nette/web-project` з GitHub, який вже містить файл `composer.json`, і відразу після цього встановить сам фреймворк Nette. Залишилося тільки [перевірити права на запис |nette:troubleshooting#Setting-Directory-Permissions] для директорій `temp/` і `log/`, і ви готові до роботи. +Якщо ви знаєте, на якій версії PHP буде розміщено проект, обов'язково встановіть [її |#PHP Version]. + Версія PHP .[#toc-php-version] ============================== -Composer завжди встановлює ті версії пакетів, які сумісні з версією PHP, використовуваною вами на даний момент. Це, звичайно, може бути не та версія PHP, яка встановлена на вашому хості. Тому корисно додати інформацію про версію PHP на хості до файлу `composer.json`, і тоді будуть встановлені тільки версії пакетів, сумісні з хостом: +Composer завжди встановлює версії пакунків, сумісні з версією PHP, яку ви зараз використовуєте (точніше, з версією PHP, яка використовується у командному рядку під час запуску Composer). А це, ймовірно, не та версія, яку використовує ваш веб-хостинг. Ось чому дуже важливо додати інформацію про версію PHP на вашому хостингу до файлу `composer.json`. Після цього будуть встановлені лише версії пакунків, сумісні з хостом. + +Наприклад, щоб налаштувати роботу проекту на PHP 8.2.3, скористайтеся командою: + +```shell +composer config platform.php 8.2.3 +``` + +Таким чином версія буде записана у файл `composer.json`: ```js { - "require": { - ... - }, "config": { "platform": { - "php": "7.2" # PHP версия сервера + "php": "8.2.3" } } } ``` +Однак, номер версії PHP також вказано в іншому місці файлу, в розділі `require`. У той час як перше число вказує на версію, для якої будуть встановлені пакунки, друге число вказує на версію, для якої написано саму програму. +(Звичайно, немає сенсу, щоб ці версії відрізнялися, тому подвійний запис є надмірністю). Ви встановлюєте цю версію за допомогою команди: + +```shell +composer require php 8.2.3 --no-update +``` + +Або безпосередньо у файлі `composer.json`: + +```js +{ + "require": { + "php": "8.2.3" + } +} +``` + + +Неправдиві повідомлення .[#toc-false-reports] +============================================= + +При оновленні пакунків або зміні номерів версій виникають конфлікти. Один пакунок має вимоги, які конфліктують з іншим і так далі. Утім, іноді Composer видає хибні повідомлення. Він повідомляє про конфлікт, якого насправді не існує. У цьому випадку рекомендується видалити файл `composer.lock` і спробувати ще раз. + +Якщо повідомлення про помилку не зникає, це означає, що проблема серйозна, і вам потрібно прочитати, що і як потрібно змінити. + Packagist.org - глобальний репозиторій .[#toc-packagist-org-global-repository] ==============================================================================