Skip to content

Commit

Permalink
Merge pull request #7 from Micro-PHP/v1.6-release
Browse files Browse the repository at this point in the history
v1.6.0 released
  • Loading branch information
Asisyas authored Jan 17, 2023
2 parents fa11812 + b3bb00c commit f6f1123
Show file tree
Hide file tree
Showing 18 changed files with 442 additions and 247 deletions.
9 changes: 9 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
/.github export-ignore
/tests export-ignore
/phpunit.xml.dist export-ignore
/.gitattributes export-ignore
/.gitignore export-ignore
/.php-cs-fixer.dist.php export-ignore
/psalm.xml export-ignore

*.php diff=php
2 changes: 2 additions & 0 deletions .github/workflows/.editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[{*.yaml,*.yml}]
indent_size = 2
48 changes: 48 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Plugin CI
on:
push:
branches: [ 'master' ]
pull_request:

env:
PHP_CS_FIXER_IGNORE_ENV: 1
XDEBUG_MODE: coverage

jobs:
tests:
name: "Tests ${{ matrix.php-version }} deps ${{ matrix.dependency-versions }}"
runs-on: ubuntu-22.04

strategy:
fail-fast: false
matrix:
# normal, highest, non-dev installs
php-version: [ '8.2' ]
dependency-versions: [ 'highest' ]
include:
# testing lowest PHP version with the lowest dependencies
# - php-version: '8.2'
# dependency-versions: 'lowest'

# testing dev versions with the highest PHP
- php-version: '8.2'
dependency-versions: 'highest'

steps:
- name: "Checkout code"
uses: "actions/checkout@v2"

- name: "Install PHP"
uses: "shivammathur/setup-php@v2"
with:
coverage: "none"
php-version: "${{ matrix.php-version }}"

- name: "Composer install"
uses: "ramsey/composer-install@v2"
with:
dependency-versions: "${{ matrix.dependency-versions }}"
composer-options: "--prefer-dist --no-progress"

- name: Run tests
run: composer run test
10 changes: 7 additions & 3 deletions .gitignore
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
.phpdoc/
docs/
vendor/
.idea
vendor
composer.lock
.phpunit.result.cache
.php-cs-fixer.cache
test-coverage-report
phpunit.xml
.php-cs-fixer.php
phpstan.neon
30 changes: 30 additions & 0 deletions .php-cs-fixer.dist.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?php

if (!file_exists(__DIR__.'/src')) {
exit(0);
}

$finder = (new PhpCsFixer\Finder())
->in(__DIR__.'/src')
->in(__DIR__.'/tests')
;

return (new PhpCsFixer\Config())
->setRules(array(
'@Symfony' => true,
'@Symfony:risky' => true,
'protected_to_private' => false,
'semicolon_after_instruction' => false,
'header_comment' => [
'header' => <<<EOF
This file is part of the Micro framework package.
(c) Stanislau Komar <[email protected]>
For the full copyright and license information, please view the LICENSE
file that was distributed with this source code.
EOF
]
))
->setRiskyAllowed(true)
->setFinder($finder);
80 changes: 1 addition & 79 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,81 +1,3 @@
# Micro Framework - The minimum kernel for application initialization.

### Requirements

PHP >= 8.0.0

### How to use the library

Add the latest version of micro/kernel into your project by using Composer or manually:

__Using Composer (Recommended)__

Or require the package inside the composer.json of your project:
```
"require": {
"micro/kernel": "^1"
},
```

### Example

After adding the library to your project, include the file autoload.php found in root of the library.
```html
include 'vendor/autoload.php';
```

#### Simple usage:

```php

use Micro\Framework\Kernel\Configuration\DefaultApplicationConfiguration;
use Micro\Framework\Kernel\Plugin\PluginDependedInterface;
use Micro\Framework\Kernel\Plugin\ApplicationPluginInterface;
use Micro\Component\DependencyInjection\Container;
use Micro\Framework\Kernel\Plugin\PluginBootLoaderInterface;
use Micro\Framework\Kernel\KernelBuilder;

// Create simple plugin
class TestPlugin implements PluginDependedInterface
{
public function provideDependencies(Container $container): void
{
print_r('Provided dependencies');
}
}

// Create Dependency provider boot loader
class DependencyProviderLoader implements PluginBootLoaderInterface
{

public function __construct(private readonly Container $container)
{
}

public function boot(ApplicationPluginInterface $applicationPlugin): void
{
$applicationPlugin->getDependedPlugins($this->container);
}
}

$kernelBuilder = new KernelBuilder();
$container = new Container();
$configuration = new DefaultApplicationConfiguration(['APP_ENV' => 'dev']);
$kernel = $kernelBuilder
->setApplicationConfiguration($configuration)
->setContainer($container)
->setApplicationPlugins([
TestPlugin::class
])
->addBootLoaders([
new DependencyProviderLoader($container)
])
->build();
;

$kernel->run();
```

## License

[MIT](LICENSE)
Documentation is available [here](https://micro-php.net/docs). If not, we will be grateful if you can become its author :)
54 changes: 46 additions & 8 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,22 +1,60 @@
{
"name": "micro/kernel",
"type": "library",
"description": "",
"version": "1.3",
"license": "MIT",
"autoload": {
"psr-4": {
"Micro\\Framework\\Kernel\\": "src/"
}
},
"type": "library",
"authors": [
{
"name": "Stanislau.Komar",
"email": "[email protected]"
}
],
"require": {
"php": "^8.1|^8.2",
"php": "^8.2",
"micro/dependency-injection": "^1"
},
"require-dev": {
"ergebnis/composer-normalize": "^2.29",
"friendsofphp/php-cs-fixer": "^3.13",
"phpstan/phpstan": "^1.9",
"phpunit/php-code-coverage": "^9.2",
"phpunit/phpunit": "^9.5",
"vimeo/psalm": "^5.2"
},
"autoload": {
"psr-4": {
"Micro\\Framework\\Kernel\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"Micro\\Framework\\Kernel\\Test\\Unit\\": "tests/Unit"
}
},
"config": {
"allow-plugins": {
"ergebnis/composer-normalize": true
},
"sort-packages": true
},
"scripts": {
"coverage": "XDEBUG_MODE=coverage ./vendor/bin/phpunit --coverage-text",
"coverage-html": "XDEBUG_MODE=coverage ./vendor/bin/phpunit --coverage-html ./test-coverage-report",
"php-cs-fix": "PHP_CS_FIXER_IGNORE_ENV=1 ./vendor/bin/php-cs-fixer fix --verbose --using-cache=no",
"php-cs-try": "PHP_CS_FIXER_IGNORE_ENV=1 ./vendor/bin/php-cs-fixer fix --verbose --dry-run --using-cache=no",
"phpstan": "./vendor/bin/phpstan analyze --no-progress",
"phpunit": "./vendor/bin/phpunit",
"psalm": "./vendor/bin/psalm --no-progress --show-info=true --no-cache",
"statics": [
"@phpstan",
"@psalm",
"@php-cs-try"
],
"test": [
"@statics",
"composer validate --strict",
"composer normalize",
"@coverage"
]
}
}
4 changes: 4 additions & 0 deletions phpstan.neon.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
parameters:
level: 7
paths:
- src
36 changes: 36 additions & 0 deletions phpunit.xml.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- https://phpunit.readthedocs.io/en/9.5/configuration.html#the-phpunit-element -->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.5/phpunit.xsd"
backupGlobals="false"
bootstrap="vendor/autoload.php"
colors="true"
failOnRisky="true"
failOnWarning="true"
>
<php>
<ini name="error_reporting" value="-1" force="true"/>
</php>
<testsuites>
<testsuite name="Unit tests">
<directory>tests/Unit</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory suffix=".php">src/</directory>
<exclude>
<directory>src/Exception</directory>
<file>src/HttpCorePlugin.php</file>
</exclude>
</whitelist>
</filter>
<coverage>
<include>
<directory suffix=".php">src</directory>
</include>
<report>
<html outputDirectory="test-coverage-report/" />
</report>
</coverage>
</phpunit>
17 changes: 17 additions & 0 deletions psalm.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0"?>
<psalm
errorLevel="2"
resolveFromConfigFile="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="https://getpsalm.org/schema/config"
xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
>
<projectFiles>
<directory name="src" />
<ignoreFiles>
<directory name="vendor" />
</ignoreFiles>

</projectFiles>

</psalm>
13 changes: 0 additions & 13 deletions src/Container/ApplicationContainerFactoryInterface.php

This file was deleted.

18 changes: 0 additions & 18 deletions src/Container/Impl/ApplicationContainerFactory.php

This file was deleted.

Loading

0 comments on commit f6f1123

Please sign in to comment.