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-packagegit clone git@github.com:rulon/test-composer-package.git .put here ^^^ your real path
-
try edit this file ./README.md
-
check
git remote -vvvv
origin git@github.com:rulon/test-composer-package.git (fetch)
origin git@github.com: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.phpresult:
Rulon\TestComposerPackage\MyClass::__construct
Rulon\TestComposerPackage\MyClass::__construct
Rulon\TestComposerPackage\MyClass::__construct
Enjoy!