test-composer-package
-
create repo user/test-composer-package (user replace with your login)
-
add public key if needed to https://github.com/settings/keys
see here:
cat ~/.ssh/id_rsa.pub
- on local computer:
mkdir test-composer-package
cd test-composer-package
git clone [email protected]:rulon/test-composer-package.git .
put here ^^^ your real path
-
try edit this file ./README.md
-
check
git remote -vvvv
origin [email protected]:rulon/test-composer-package.git (fetch)
origin [email protected]:rulon/test-composer-package.git (push)
-
git add .
-
git ci -m "commit1"
-
git push
-
see results (put your real url): https://github.com/rulon/test-composer-package
mkdir src && cd src
-
create your files. for example MyClass.php
composer init
- check composer.json
cat composer.json
{
"name": "rulon/test-composer-package",
"description": "descr text",
"type": "library",
"autoload": {
"psr-4": {
"Rulon\\TestComposerPackage\\": "src/"
}
},
"authors": [
{
"name": "author name"
}
],
"require": {}
}
- edit src/MyClass.php
<?php
/**
*
* @since 2024-07-26 20:22
*/
namespace Rulon\TestComposerPackage;
class MyClass
{
public function __construct()
{
echo "\n\n" . __METHOD__ . "\n\n";
}
}
- testing namespaces. create index.php
<?php
/**
* @since 2024-07-26 20:30
*/
use Rulon\TestComposerPackage\MyClass;
require_once __DIR__ . '/vendor/autoload.php';
//relative namespace
$testObj1 = new Rulon\TestComposerPackage\MyClass;
//absolute namespace
$testObj2 = new \Rulon\TestComposerPackage\MyClass;
//short class name
$testObj3 = new MyClass;
call:
php index.php
-
repeat items 8-11
-
cd to project that requires your new package add sections to composer.json
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/rulon/test-composer-package"
}
],
"require": {
"rulon/test-composer-package": "dev-master"
}
}
composer install
- test
cp vendor/rulon/test-composer-package/index.php .
php index.php
result:
Rulon\TestComposerPackage\MyClass::__construct
Rulon\TestComposerPackage\MyClass::__construct
Rulon\TestComposerPackage\MyClass::__construct
Enjoy!