Code Monkey home page Code Monkey logo

app-version-laravel's Introduction

Laravel

AppVersion for Laravel applications

Version PHP Version Build Status Coverage Downloads count License

screenshot

Picture taken from antonioribeiro/version repository

Laravel does not have included mechanism for a working with application version, and this package can fix this flaw.

Install

Require this package with composer using the following command:

$ composer require avto-dev/app-version-laravel "^3.0"

Installed composer is required (how to install composer).

You need to fix the major version of package.

After that you should "publish" configuration file (./config/version.php) using next command:

$ php artisan vendor:publish --provider="AvtoDev\\AppVersion\\ServiceProvider"

Usage

This package provides application version manager (AppVersionManager) and:

  • Version value repositories (abstraction layer above version data)
  • Repository drivers (also known as "factories" - they creates configured repository instance)

You can write your own implementations, and use them (only correct configuration is required).

Built-in "storage" types:

  • Plain file with version definition;
  • Application configuration file (version.config by default);
  • CHANGELOG.md file (extracts last defined version value).

If you wanna get access to the version manager using DI - just request AvtoDev\AppVersion\AppVersionManagerInterface:

<?php

namespace App\Console\Commands;

use AvtoDev\AppVersion\AppVersionManagerInterface;

class SomeCommand extends \Illuminate\Console\Command
{
    /**
     * The console command name.
     *
     * @var string
     */
    protected $name = 'some:command';

    /**
     * Execute the console command.
     *
     * @param AppVersionManagerInterface $manager
     *
     * @return void
     */
    public function handle(AppVersionManagerInterface $manager): void
    {
        $manager->version(); // e.g.: 1.0.0-alpha2
    }
}

Artisan commands

Command signature Description
version Shows application version
version --get-segment=major/minor/patch/build Shown only major/minor/patch/build version value
version --set-build=alpha2 Set build value alpha2
version --set-version=1.2.3-alpha Complex version setter

Blade

Blade compiler allows next directives:

Application version: @app_version
Build version: @app_build
Application version hash: @app_version_hash

Testing

For package testing we use phpunit framework and docker-ce + docker-compose as develop environment. So, just write into your terminal after repository cloning:

$ make build
$ make latest # or 'make lowest'
$ make test

Changes log

Release date Commits since latest release

Changes log can be found here.

Support

Issues Issues

If you will find any package errors, please, make an issue in current repository.

License

This is open-sourced software licensed under the MIT License.

app-version-laravel's People

Contributors

tarampampam avatar eldario avatar yurichechulin avatar zaboday avatar gomzyakov avatar igorkorytin avatar ilyakislitsin avatar korobovn avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.