PhpPackage: Unterschied zwischen den Versionen

Aus Info-Theke
Zur Navigation springen Zur Suche springen
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 5: Zeile 5:
* [[PHP]]
* [[PHP]]
* [[PhpPackage]]
* [[PhpPackage]]
* https://dev.to/timoschinkel/good-practices-when-working-with-composer-5a1c


= Zielsetzung =
= Zielsetzung =
Zeile 48: Zeile 49:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
composer update
composer update
composer update --no-dev
</syntaxhighlight>
== Version festlegen ==
<syntaxhighlight lang="bash">
composer require symfony/mailer 7.0.7
</syntaxhighlight>
</syntaxhighlight>


Zeile 53: Zeile 60:
* https://stackoverflow.com/questions/21721495/how-to-deploy-correctly-when-using-composers-develop-production-switch
* https://stackoverflow.com/questions/21721495/how-to-deploy-correctly-when-using-composers-develop-production-switch
* <code>composer install {--dev | --no-dev}</code>, default ist <code>--dev</code>
* <code>composer install {--dev | --no-dev}</code>, default ist <code>--dev</code>
* <code>composer update {--dev | --no-dev}</code>, default ist <code>--dev</code>


== Autoloaderdaten generieren ==
== Autoloaderdaten generieren ==
Zeile 70: Zeile 78:
== Einbinden eines lokalen Pakets ==
== Einbinden eines lokalen Pakets ==
* composer.json
* composer.json
<syntaxhighlight lang="bash">
composer config repositories.laraknife '{"type": "path", "url": "../laraknife", "options": {"symlink": true}}'
</syntaxhighlight>
* Das ergibt:
<pre>
<pre>
"repositories": [
"repositories": [
Zeile 87: Zeile 99:
* composer.json
* composer.json
* Der Branch wird in "require" hinter "dev-" angegeben, z.B. "dev-master"
* Der Branch wird in "require" hinter "dev-" angegeben, z.B. "dev-master"
 
<syntaxhighlight lang="bash">
composer config repositories.laraknife vcs https://github.com/hamatoma/laraknife
# Branch main:
composer require hamatoma/laraknife:dev-main
</syntaxhighlight>
* Das ergibt dann:
<pre>
<pre>
     "repositories": [
     "repositories": [
         {
         "laraknife": {
             "type": "vcs",
             "type": "vcs",
             "url": "https://github.com/hamatoma/laraknife"
             "url": "https://github.com/hamatoma/laraknife"
Zeile 96: Zeile 113:
     ],
     ],
     "require": {
     "require": {
         "monolog/monolog": "dev-master"
         "hamatoma/laraknife": "dev-main"
     }
     }
}
}

Aktuelle Version vom 1. Dezember 2024, 18:17 Uhr


Links[Bearbeiten]

Zielsetzung[Bearbeiten]

Leitfaden, wie ein PHP-Package erzeugt wird, wie es eingebunden wird.

Installation[Bearbeiten]

apt install composer

Erzeugen eines Php-Packages[Bearbeiten]

Das Erzeugen erfolgt interaktiv:

composer init

Wichtig für Benennen des Packages:

  • Paketname: hamatoma/my_super_package Namespace: Hamatoma/MySuperPackage
  • Paketname: hamatoma-only/my-super-package Namespace: HamatomaOnly\MySuperPackage
Package name (<vendor>/<name>) [hamatoma/my_super_package]: # Kleinbuchstaben. Namespace:
Description: My super Package
Author: Hamatoma <author@hamatoma.de>
Minimum Stability: dev # oder  alpha, beta, RC, stable
Package Type (e.g. library, project, metapackage, composer-plugin): library
License []: CC0 1.0 Universal
Would you like to define your dependencies (require) interactively: yes
Search for a package: the_ultimate_package
 Found 3 packages matching the_ultimate_package
   [0] fjerbi/ultimateblog 
   [1] assegaiphp/validation 
   [2] ingress-it-solutions/laravel-google-my-business 
Enter the version constraint to require (or leave blank to use the latest version):
...
Would you like to define your dev dependencies (require-dev) interactively: no

Add PSR-4 autoload mapping? Maps namespace "Hamatoma\MySuperPackage" to the path [src/ n to skip]: /src
Do you confirm generation [yes]
Would you like to install dependencies now [yes]?

Kochbuch[Bearbeiten]

Aktualisieren[Bearbeiten]

composer update
composer update --no-dev

Version festlegen[Bearbeiten]

composer require symfony/mailer 7.0.7

Entwicklung-Produktion[Bearbeiten]

Autoloaderdaten generieren[Bearbeiten]

composer dump-autoload

Einbinden in Startseite index.php[Bearbeiten]

require_once 'Hamatoma/MySuperPackage';
$class = new \Hamatoma\MySuperPackage\MyClass();

Einbinden in Projekt MyPhpProject[Bearbeiten]

composer require hamatoma/my_super_package

Einbinden eines lokalen Pakets[Bearbeiten]

  • composer.json
composer config repositories.laraknife '{"type": "path", "url": "../laraknife", "options": {"symlink": true}}'
  • Das ergibt:
"repositories": [
    {
        "type": "path",
        "url": "../my-package",
        "options": {
            "symlink": true
        }
    }
],
...
"minimum-stability": "dev",

Einbinden eines Github-Repository[Bearbeiten]

  • composer.json
  • Der Branch wird in "require" hinter "dev-" angegeben, z.B. "dev-master"
composer config repositories.laraknife vcs https://github.com/hamatoma/laraknife
# Branch main:
composer require hamatoma/laraknife:dev-main
  • Das ergibt dann:
    "repositories": [
        "laraknife": {
            "type": "vcs",
            "url": "https://github.com/hamatoma/laraknife"
        }
    ],
    "require": {
        "hamatoma/laraknife": "dev-main"
    }
}
...
"minimum-stability": "dev",