Skeleton Application for Laminas API Tools

Overview

Laminas API Tools Skeleton Application

Requirements

Please see the composer.json file.

Installation

Via release tarball

Grab the latest release via the Laminas API Tools website and/or the releases page; each release has distribution tarballs and zipballs available.

Untar it:

$ tar xzf api-tools-skeleton-{version}.tgz

(Where {version} is the version you downloaded.)

Or unzip, if you chose the zipball:

$ unzip api-tools-skeleton-{version}.zip

(Where {version} is the version you downloaded.)

Via Composer (create-project)

You can use the create-project command from Composer to create the project in one go (you need to install composer):

$ curl -s https://getcomposer.org/installer | php -- --filename=composer
$ composer create-project -sdev laminas-api-tools/api-tools-skeleton path/to/install

Via Git (clone)

First, clone the repository:

# git clone https://github.com/laminas-api-tools/api-tools-skeleton.git # optionally, specify the directory in which to clone
$ cd path/to/install

At this point, you need to use Composer to install dependencies. Assuming you already have Composer:

$ composer install

All methods

Once you have the basic installation, you need to put it in development mode:

$ cd path/to/install
$ composer development-enable

Now, fire it up! Do one of the following:

  • Create a vhost in your web server that points the DocumentRoot to the public/ directory of the project
  • Fire up the built-in web server in PHP(note: do not use this for production!)

In the latter case, do the following:

$ cd path/to/install
$ php -S 0.0.0.0:8080 -ddisplay_errors=0 -t public public/index.php
# OR use the composer alias:
$ composer serve

You can then visit the site at http://localhost:8080/ - which will bring up a welcome page and the ability to visit the dashboard in order to create and inspect your APIs.

NOTE ABOUT USING APACHE

Apache forbids the character sequences %2F and %5C in URI paths. However, the Laminas API Tools Admin API uses these characters for a number of service endpoints. As such, if you wish to use the Admin UI and/or Admin API with Apache, you will need to configure your Apache vhost/project to allow encoded slashes:

AllowEncodedSlashes On

This change will need to be made in your server's vhost file (it cannot be added to .htaccess).

NOTE ABOUT OPCACHE

Disable all opcode caches when running the admin!

The admin cannot and will not run correctly when an opcode cache, such as APC or OpCache, is enabled. Laminas API Tools does not use a database to store configuration; instead, it uses PHP configuration files. Opcode caches will cache these files on first load, leading to inconsistencies as you write to them, and will typically lead to a state where the admin API and code become unusable.

The admin is a development tool, and intended for use a development environment. As such, you should likely disable opcode caching, regardless.

When you are ready to deploy your API to production, however, you can disable development mode, thus disabling the admin interface, and safely run an opcode cache again. Doing so is recommended for production due to the tremendous performance benefits opcode caches provide.

NOTE ABOUT DISPLAY_ERRORS

The display_errors php.ini setting is useful in development to understand what warnings, notices, and error conditions are affecting your application. However, they cause problems for APIs: APIs are typically a specific serialization format, and error reporting is usually in either plain text, or, with extensions like XDebug, in HTML. This breaks the response payload, making it unusable by clients.

For this reason, we recommend disabling display_errors when using the Laminas API Tools admin interface. This can be done using the -ddisplay_errors=0 flag when using the built-in PHP web server, or you can set it in your virtual host or server definition. If you disable it, make sure you have reasonable error log settings in place. For the built-in PHP web server, errors will be reported in the console itself; otherwise, ensure you have an error log file specified in your configuration.

display_errors should never be enabled in production, regardless.

Vagrant

If you prefer to develop with Vagrant, there is a basic vagrant recipe included with this project.

This recipe assumes that you already have Vagrant installed. The virtual machine will try to use localhost:8080 by default, so if you already have a server on this port of your host machine, you need to shut down the conflicting server first, or if you know how, you can reconfigure the ports in Vagrantfile.

Assuming you have Vagrant installed and assuming you have no port conflicts, you can bring up the Vagrant machine with the standard up command:

$ vagrant up

When the machine comes up, you can ssh to it with the standard ssh forward agent:

$ vagrant ssh

The web root is inside the shared directory, which is at /var/www; this is also the home directory for the vagrant issue, which will be the initial directory you land in once you connect via SSH.

The image installs composer during provisioning, meaning you can use it to install and update dependencies:

# Install dependencies:
$ vagrant ssh -c 'composer install'
# Update dependencies:
$ vagrant ssh -c 'composer update'

You can also manipulate development mode:

$ vagrant ssh -c 'composer development-enable'
$ vagrant ssh -c 'composer development-disable'
$ vagrant ssh -c 'composer development-status'

Vagrant and VirtualBox

The vagrant image is based on bento/ubuntu-16.04. If you are using VirtualBox as a provider, you will need:

  • Vagrant 1.8.5 or later
  • VirtualBox 5.0.26 or later

For vagrant documentation, please refer to vagrantup.com

Docker

If you develop or deploy using Docker, we provide configuration for you.

Prepare your development environment using docker compose:

$ git clone https://github.com/laminas-api-tools/api-tools-skeleton
$ cd api-tools-skeleton
$ docker-compose build
# Install dependencies via composer, if you haven't already:
$ docker-compose run api-tools composer install
# Enable development mode:
$ docker-compose run api-tools composer development-enable

Start the container:

$ docker-compose up

Access Laminas API Tools from http://localhost:8080/ or http://<boot2docker ip>:8080/ if on Windows or Mac.

You may also use the provided Dockerfile directly if desired.

Once installed, you can use the container to update dependencies:

$ docker-compose run api-tools composer update

Or to manipulate development mode:

$ docker-compose run api-tools composer development-enable
$ docker-compose run api-tools composer development-disable
$ docker-compose run api-tools composer development-status

QA Tools

The skeleton ships with minimal QA tooling by default, including laminas/laminas-test. We supply basic tests for the shipped Application\Controller\IndexController.

We also ship with configuration for phpcs. If you wish to add this QA tool, execute the following:

$ composer require --dev squizlabs/php_codesniffer

We provide aliases for each of these tools in the Composer configuration:

# Run CS checks:
$ composer cs-check
# Fix CS errors:
$ composer cs-fix
# Run PHPUnit tests:
$ composer test
Comments
  • Error creating project from composer

    Error creating project from composer

    Bug Report

    | Software | Version |------------ | ------ | Windows | 11 - Full Updated | PHP CLI | 7.4.9

    Summary

    Trying to create a new empty project according project tutorial in https://api-tools.getlaminas.org/

    Current behavior

    composer create-project laminas-api-tools/api-tools-skeleton
    ....
    
    > php -r 'if (file_exists("src/remove-package-artifacts.php")) include "src/remove-package-artifacts.php";'
    Script php -r 'if (file_exists("src/remove-package-artifacts.php")) include "src/remove-package-artifacts.php";' handling the post-create-project-cmd event returned with error code 1
    

    How to reproduce

    In console run composer create-project laminas-api-tools/api-tools-skeleton, and use production config files, at the end of process the line errors above will be displayed image

    Expected behavior

    Create a new project without errors

    Bug 
    opened by gildonei 11
  • Update composer.json

    Update composer.json

    | Q | A |-------------- | ------ | Bugfix | yes

    Description

    Fixed post-create-project-cmd for windows by replacing single quotes for double quotes

    Testing in Win 11 / php 7.4.9 cli using git clone / composer install

    Awaiting Author Updates Bug 
    opened by gildonei 6
  • PHP 8.0 support

    PHP 8.0 support

    Feature Request

    | Q | A |------------ | ------ | New Feature | yes

    Summary

    To be prepared for the december release of PHP 8.0, this repository has some additional TODOs to be tested against the new major version.

    In order to make this repository compatible, one has to follow these steps:

    • [ ] Modify composer.json to provide support for PHP 8.0 by adding the constraint ~8.0.0
    • [ ] Modify composer.json to drop support for PHP less than 7.3
    • [ ] Modify composer.json to implement phpunit 9.3 which supports PHP 7.3+
    • [ ] Modify .travis.yml to ignore platform requirements when installing composer dependencies (simply add --ignore-platform-reqs to COMPOSER_ARGS env variable)
    • [ ] Modify .travis.yml to add PHP 8.0 to the matrix (NOTE: Do not allow failures as PHP 8.0 has a feature freeze since 2020-08-04!)
    • [ ] Modify source code in case there are incompatibilities with PHP 8.0
    Enhancement Help Wanted hacktoberfest-accepted 
    opened by boesing 4
  • Allow PHP 8.1

    Allow PHP 8.1

    | Q | A |-------------- | ------ | Documentation | no | Bugfix | no | BC Break | no | New Feature | no | RFC | no | QA | yes

    Description

    Allow install on PHP 8.1

    Enhancement 
    opened by snapshotpl 3
  • Added router public/index.php

    Added router public/index.php

    Seems like the public/index.php router is needed to run the project for development. So added the router to the composer serve command.

    | Q | A |-------------- | ------

    | Bugfix | yes

    Description

    Without passing the router script (index.php) on the composer command, the project does not load properly.

    Bug 
    opened by djnotes 3
  • Built-in web server does not work for serving UI or API

    Built-in web server does not work for serving UI or API

    Bug Report

    | Q | A |------------ | ------ | Version(s) | 1.5.2 (likely all others), under PHP 7.1+ (have not tried it on earlier PHP versions)

    Summary

    When running the API Tools using the PHP built-in webserver per the instructions, the initial page redirects to /api-tools/ui, which presents a 404 from the built-in webserver itself.

    Calls to API endpoints such as /api-tools/api/dashboard fail similarly.

    Current behavior

    See Summary.

    How to reproduce

    1. Create a new project: composer create-project laminas-api-tools/api-tools-skeleton
    2. Remove bad entry for LaminasDeveloperTools from config/development.config.php.dist
    3. Fire up the built-in webserver: php -S 0:8080 -t public
    4. Browse to localhost:8080 and/or localhost:8080/api-tools/ui and/or localhost:8080/api-tools/api/dashboard.

    Expected behavior

    In a browser, the Admin UI should display.

    When accessing an API endpoint, results should be presented.

    Bug 
    opened by weierophinney 3
  • Adjust packages and extensions in order to run on PHP 8.0

    Adjust packages and extensions in order to run on PHP 8.0

    | Q | A |-------------- | ------ | Documentation | no | Bugfix | no | BC Break | no | New Feature | no | RFC | no | QA | no

    Description

    I've seen that the project skeleton can't run on PHP-8.0 as reported here #44 Since I also have the need to run a new project on PHP-8.0 I've adjusted the composer packages and Dockerfile in order to run on that version. Hope you find it usefull

    Enhancement 
    opened by giannicic 2
  • Nginx Configuration Example

    Nginx Configuration Example

    Feature Request

    | Q | A |------------ | ------ | New Feature | yes | RFC | no | BC Break | no

    Summary

    An example Nginx configuration file would be handy, struggling to figure out the right spec to get this working. It appears Apace htaccess is doing something to rewrite the URL but for some reason I cannot figure it out. When I use the php -S command the ui works fine. When I point my Nginx config to the directory, I get 404 on /api-tools/ui

    Seems like there is a web.config file for IIS but no Nginx config to be seen and no mention of it anywhere

    Enhancement Won't Fix 
    opened by lewisstancer 2
  • Using composer create-project fails with Composer 2

    Using composer create-project fails with Composer 2

    Feature Request

    | Q | A |------------ | ------ | New Feature | yes

    Summary

    Support for composer create-project laminas-api-tools/api-tools-skeleton using Composer 2. It currently fails during dependency installation with the error below.

    Your requirements could not be resolved to an installable set of packages.
    
      Problem 1
        - laminas/laminas-component-installer 1.1.1 requires composer-plugin-api ^1.0 -> found composer-plugin-api[2.0.0] but it does not match the constraint.
        - laminas/laminas-component-installer[2.1.1, ..., 2.3.2] require php ^7.1 -> your php version (5.6.40) does not satisfy that requirement.
        - Root composer.json requires laminas/laminas-component-installer ^1.1.1 || ^2.1.1 -> satisfiable by laminas/laminas-component-installer[1.1.1, 2.1.1, ..., 2.3.2].
    
    You are using Composer 2, which some of your plugins seem to be incompatible with. Make sure you update your plugins or report a plugin-issue to ask them to support Composer 2.
    
    Enhancement 
    opened by taisph 2
  • Error composer require laminas-api-tools/api-tools-doctrine

    Error composer require laminas-api-tools/api-tools-doctrine

    Bug Report

    | Q | A |------------ | ------ | Version(s) | 1.5.2p1

    Summary

    composer create-project laminas-api-tools/api-tools-skeleton:1.5.2p1 composer require laminas-api-tools/api-tools-doctrine

    Your requirements could not be resolved to an installable set of packages.
    
      Problem 1
        - Installation request for laminas-api-tools/api-tools-doctrine ^2.3 -> satisfiable by laminas-api-tools/api-tools-doctrine[2.3.0].
        - Conclusion: remove laminas/laminas-hydrator 3.0.2
        - Conclusion: don't install laminas/laminas-hydrator 3.0.2
        - laminas-api-tools/api-tools-doctrine 2.3.0 requires phpro/zf-doctrine-hydration-module ^2.0.1 || ^3.0 || ^4.1 -> satisfiable by phpro/zf-doctrine-hydration-module[v2.0.1, v3.0.0, v4.1.0].
        - phpro/zf-doctrine-hydration-module v3.0.0 requires zendframework/zend-hydrator ^1.1 || ^2.2.1 -> satisfiable by laminas/laminas-hydrator[1.1.0, 2.2.1, 2.2.2, 2.2.3, 2.3.0, 2.3.1, 2.4.0, 2.4.1, 2.4.2], zendframework/zend-hydrator[1.1.0, 2.2.1, 2.2.2, 2.2.3, 2.3.0, 2.3.1, 2.4.0, 2.4.1, 2.4.2].
        - phpro/zf-doctrine-hydration-module v4.1.0 requires zendframework/zend-hydrator ^1.1 || ^2.2.1 -> satisfiable by laminas/laminas-hydrator[1.1.0, 2.2.1, 2.2.2, 2.2.3, 2.3.0, 2.3.1, 2.4.0, 2.4.1, 2.4.2], zendframework/zend-hydrator[1.1.0, 2.2.1, 2.2.2, 2.2.3, 2.3.0, 2.3.1, 2.4.0, 2.4.1, 2.4.2].
        - phpro/zf-doctrine-hydration-module v2.0.1 requires zendframework/zend-hydrator ~1.0 || ^2.0 -> satisfiable by laminas/laminas-hydrator[1.0.0, 1.1.0, 2.1.0, 2.2.0, 2.2.1, 2.2.2, 2.2.3, 2.3.0, 2.3.1, 2.4.0, 2.4.1, 2.4.2], zendframework/zend-hydrator[1.0.0, 1.1.0, 2.0.0, 2.1.0, 2.2.0, 2.2.1, 2.2.2, 2.2.3, 2.3.0, 2.3.1, 2.4.0, 2.4.1, 2.4.2].
        - Can only install one of: laminas/laminas-hydrator[1.1.0, 3.0.2].
        - Can only install one of: laminas/laminas-hydrator[2.2.1, 3.0.2].
        - Can only install one of: laminas/laminas-hydrator[2.2.2, 3.0.2].
        - Can only install one of: laminas/laminas-hydrator[2.2.3, 3.0.2].
        - Can only install one of: laminas/laminas-hydrator[2.3.0, 3.0.2].
        - Can only install one of: laminas/laminas-hydrator[2.3.1, 3.0.2].
        - Can only install one of: laminas/laminas-hydrator[2.4.0, 3.0.2].
        - Can only install one of: laminas/laminas-hydrator[2.4.1, 3.0.2].
        - Can only install one of: laminas/laminas-hydrator[2.4.2, 3.0.2].
        - Can only install one of: laminas/laminas-hydrator[1.0.0, 3.0.2].
        - Can only install one of: laminas/laminas-hydrator[2.1.0, 3.0.2].
        - Can only install one of: laminas/laminas-hydrator[2.2.0, 3.0.2].
        - don't install zendframework/zend-hydrator 1.0.0|don't install laminas/laminas-hydrator 3.0.2
        - don't install zendframework/zend-hydrator 1.1.0|don't install laminas/laminas-hydrator 3.0.2
        - don't install zendframework/zend-hydrator 2.0.0|don't install laminas/laminas-hydrator 3.0.2
        - don't install zendframework/zend-hydrator 2.1.0|don't install laminas/laminas-hydrator 3.0.2
        - don't install zendframework/zend-hydrator 2.2.0|don't install laminas/laminas-hydrator 3.0.2
        - don't install zendframework/zend-hydrator 2.2.1|don't install laminas/laminas-hydrator 3.0.2
        - don't install zendframework/zend-hydrator 2.2.2|don't install laminas/laminas-hydrator 3.0.2
        - don't install zendframework/zend-hydrator 2.2.3|don't install laminas/laminas-hydrator 3.0.2
        - don't install zendframework/zend-hydrator 2.3.0|don't install laminas/laminas-hydrator 3.0.2
        - don't install zendframework/zend-hydrator 2.3.1|don't install laminas/laminas-hydrator 3.0.2
        - don't install zendframework/zend-hydrator 2.4.0|don't install laminas/laminas-hydrator 3.0.2
        - don't install zendframework/zend-hydrator 2.4.1|don't install laminas/laminas-hydrator 3.0.2
        - don't install zendframework/zend-hydrator 2.4.2|don't install laminas/laminas-hydrator 3.0.2
        - Installation request for laminas/laminas-hydrator (locked at 3.0.2) -> satisfiable by laminas/laminas-hydrator[3.0.2].
    
    
    Installation failed, reverting ./composer.json to its original content.
    

    Current behavior

    How to reproduce

    Expected behavior

    opened by sergiohermes 2
  • Missing Zend-i18n package

    Missing Zend-i18n package

    Hello,

    I just installed a fresh install of Apigility with curl -sS https://apigility.org/install | php (according to documentation).

    I started playing with it (it's my first time using Apigility) but I couldn't add an alpha validator on my field. Looking at the console I realized I had the following error:

    PHP Fatal error:  Uncaught Error: Class 'Zend\I18n\Validator\Alpha' not found
    

    To fix the issue, I added the zendframework/zend-i18n package with composer require zendframework/zend-i18n and added 'Zend\\I18n' in modules.config.php (it was done by composer but there was a \ missing).

    I hope it helps :)


    Originally posted by @jbelien at https://github.com/zfcampus/zf-apigility-skeleton/issues/170

    opened by weierophinney 2
  • Missing Package in Admin Ui

    Missing Package in Admin Ui

    Bug Report

    Missing Package on the Admin Ui Per: https://api-tools.getlaminas.org/documentation/deployment/intro

    | Q | A |------------ | ------ | API Tools | 1.8 | PHP | 8.1.2 |Ubuntu (jammy) LTS | 22.04

    Summary

    This is my first time running using this project. I read through all the documentation and I have production version ready to run. Now I am looking to deploy this. :

    Current behavior

    Everything seems to work fine, but the package is missing from the Admin. When I run composer I cannot find a function for creating the package to download and run on my production Apache Servers.

    How to reproduce

    I have attempted this on several different systems and all of them are missing package.

    sudo apt install apache2, php8.1, mysql-server, php8.1-xml, php8.1-xmlwriter, php8.1-tokenizer, php8.1-sysvshm, php8.1-sysvsem, php8.1-curl, php8.1-ftp, php8.1-sockets, php8.1-mysql, php8.1-mbstring, php8.1-gettext, php8.1-fileinfo, php8.1-ffi, php8.1-exif, php8.1-ctype, php8.1-calendar, php8.1-pdo, composer -y
    
    composer create-project laminas-api-tools/api-tools-skeleton
    cd api-tools-skeleton
    rm composer.lock && rm -rf vendor
    composer install
    

    Expected behavior

    Everything will install fine. If you make a database connection, you will need to modify: config/autoload/local.php with the following

                    'options' => [
                        'buffer_results' => true,
                    ]
    
    Bug 
    opened by SpoonCart 0
  • Can not get exception in JSON format

    Can not get exception in JSON format

    Bug Report

    | Q | A |------------ | ------ | Version(s) | 1.8.0

    Summary

    I want to throw exception inside Rpc controller, like this:

    $ex = new \Laminas\ApiTools\ApiProblem\Exception\DomainException('The request you made was malformed', 400);
    $ex->setType('/documentation/problems/malformed-request');
    $ex->setTitle('Malformed Request');
    $ex->setAdditionalDetails([
        'missing-sort-direction' => 'The sort direction query string was missing and is required'
    ]);
    throw $ex;
    

    And I got an exception in html format (/module/Application/view/error/index.phtml works), but I was expecting response in JSON, like this:

    HTTP/1.1 500 Internal Error
    Content-Type: application/problem+json
    
    {
        "type": "/documentation/problems/malformed-request",
        "detail": "The request you made was malformed",
        "status": 400,
        "title": "Malformed Request",
        "missing-sort-direction": "The sort direction query string was missing and is required"
    }
    

    Of course I have header Content-Type: application/json What I do incorrect? How can I get exception in Json format?

    Question 
    opened by koroan 2
  • composer.lock prevents installation on PHP 8.1

    composer.lock prevents installation on PHP 8.1

    Bug Report

    | Q | A |------------ | ------ | Version(s) | 1.8.0

    Summary

    says updated to allow php 8.1 but, none of the dependencies seem to support 8.1

        "require": {
            "php": "^7.3 || ~8.0.0 || ~8.1.0",
    

    Current behavior

    root@f9e149b1d1ef:/var/www/html# composer install
    Installing dependencies from lock file (including require-dev)
    Verifying lock file contents can be installed on current platform.
    Your lock file does not contain a compatible set of packages. Please run composer update.
    
      Problem 1
        - laminas-api-tools/api-tools-api-problem is locked to version 1.4.0 and an update of this package was not requested.
        - laminas-api-tools/api-tools-api-problem 1.4.0 requires php ^7.3 || ~8.0.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 2
        - laminas-api-tools/api-tools-configuration is locked to version 1.3.3 and an update of this package was not requested.
        - laminas-api-tools/api-tools-configuration 1.3.3 requires php ^5.6 || ^7.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 3
        - laminas-api-tools/api-tools-content-validation is locked to version 1.9.0 and an update of this package was not requested.
        - laminas-api-tools/api-tools-content-validation 1.9.0 requires php ^7.3 || ~8.0.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 4
        - laminas-api-tools/api-tools-documentation is locked to version 1.3.0 and an update of this package was not requested.
        - laminas-api-tools/api-tools-documentation 1.3.0 requires php ^5.6 || ^7.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 5
        - laminas-api-tools/api-tools-hal is locked to version 1.6.0 and an update of this package was not requested.
        - laminas-api-tools/api-tools-hal 1.6.0 requires php ^5.6 || ^7.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 6
        - laminas-api-tools/api-tools-mvc-auth is locked to version 1.6.0 and an update of this package was not requested.
        - laminas-api-tools/api-tools-mvc-auth 1.6.0 requires php ^7.3 || ~8.0.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 7
        - laminas-api-tools/api-tools-oauth2 is locked to version 1.7.0 and an update of this package was not requested.
        - laminas-api-tools/api-tools-oauth2 1.7.0 requires php ^7.3 || ~8.0.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 8
        - laminas-api-tools/api-tools-provider is locked to version 1.4.0 and an update of this package was not requested.
        - laminas-api-tools/api-tools-provider 1.4.0 requires php ^7.3 || ~8.0.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 9
        - laminas-api-tools/api-tools-versioning is locked to version 1.4.0 and an update of this package was not requested.
        - laminas-api-tools/api-tools-versioning 1.4.0 requires php ^7.3 || ~8.0.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 10
        - laminas/laminas-authentication is locked to version 2.5.3 and an update of this package was not requested.
        - laminas/laminas-authentication 2.5.3 requires php ^5.5 || ^7.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 11
        - laminas/laminas-component-installer is locked to version 2.2.0 and an update of this package was not requested.
        - laminas/laminas-component-installer 2.2.0 requires php ^7.1 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 12
        - laminas/laminas-crypt is locked to version 3.4.0 and an update of this package was not requested.
        - laminas/laminas-crypt 3.4.0 requires php ^7.3 || ~8.0.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 13
        - laminas/laminas-db is locked to version 2.8.1 and an update of this package was not requested.
        - laminas/laminas-db 2.8.1 requires php ^5.5 || ^7.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 14
        - laminas/laminas-development-mode is locked to version 3.2.0 and an update of this package was not requested.
        - laminas/laminas-development-mode 3.2.0 requires php ^5.6 || ^7.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 15
        - laminas/laminas-filter is locked to version 2.8.0 and an update of this package was not requested.
        - laminas/laminas-filter 2.8.0 requires php ^5.6 || ^7.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 16
        - laminas/laminas-hydrator is locked to version 3.0.0 and an update of this package was not requested.
        - laminas/laminas-hydrator 3.0.0 requires php ^7.2 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 17
        - laminas/laminas-i18n is locked to version 2.11.0 and an update of this package was not requested.
        - laminas/laminas-i18n 2.11.0 requires php ^7.3 || ~8.0.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 18
        - laminas/laminas-inputfilter is locked to version 2.8.1 and an update of this package was not requested.
        - laminas/laminas-inputfilter 2.8.1 requires php ^5.6 || ^7.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 19
        - laminas/laminas-json is locked to version 2.6.1 and an update of this package was not requested.
        - laminas/laminas-json 2.6.1 requires php ^5.5 || ^7.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 20
        - laminas/laminas-math is locked to version 3.0.0 and an update of this package was not requested.
        - laminas/laminas-math 3.0.0 requires php ^5.5 || ^7.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 21
        - laminas/laminas-paginator is locked to version 2.7.0 and an update of this package was not requested.
        - laminas/laminas-paginator 2.7.0 requires php ^5.5 || ^7.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 22
        - laminas/laminas-permissions-acl is locked to version 2.6.0 and an update of this package was not requested.
        - laminas/laminas-permissions-acl 2.6.0 requires php ^5.5 || ^7.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 23
        - laminas/laminas-servicemanager is locked to version 3.7.0 and an update of this package was not requested.
        - laminas/laminas-servicemanager 3.7.0 requires php ^7.3 || ~8.0.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 24
        - webimpress/safe-writer is locked to version 1.0.2 and an update of this package was not requested.
        - webimpress/safe-writer 1.0.2 requires php ^5.6 || ^7.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 25
        - composer/semver is locked to version 1.4.0 and an update of this package was not requested.
        - composer/semver 1.4.0 requires php ^5.3.2 || ^7.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 26
        - composer/xdebug-handler is locked to version 1.1.0 and an update of this package was not requested.
        - composer/xdebug-handler 1.1.0 requires php ^5.3.2 || ^7.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 27
        - laminas-api-tools/api-tools-asset-manager is locked to version 1.3.0 and an update of this package was not requested.
        - laminas-api-tools/api-tools-asset-manager 1.3.0 requires php ^5.6 || ^7.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 28
        - laminas/laminas-code is locked to version 3.5.0 and an update of this package was not requested.
        - laminas/laminas-code 3.5.0 requires php ^7.3 || ~8.0.0 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 29
        - phpspec/prophecy is locked to version 1.12.1 and an update of this package was not requested.
        - phpspec/prophecy 1.12.1 requires php ^7.2 || ~8.0, <8.1 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 30
        - sebastian/object-reflector is locked to version 2.0.0 and an update of this package was not requested.
        - sebastian/object-reflector 2.0.0 requires php ^7.3 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 31
        - sebastian/recursion-context is locked to version 4.0.0 and an update of this package was not requested.
        - sebastian/recursion-context 4.0.0 requires php ^7.3 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 32
        - symfony/deprecation-contracts is locked to version v2.1.0 and an update of this package was not requested.
        - symfony/deprecation-contracts v2.1.0 requires php ^7.1 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 33
        - symfony/event-dispatcher is locked to version v5.0.0 and an update of this package was not requested.
        - symfony/event-dispatcher v5.0.0 requires php ^7.2.5 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 34
        - symfony/event-dispatcher-contracts is locked to version v2.0.0 and an update of this package was not requested.
        - symfony/event-dispatcher-contracts v2.0.0 requires php ^7.2.9 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 35
        - symfony/service-contracts is locked to version v1.1.1 and an update of this package was not requested.
        - symfony/service-contracts v1.1.1 requires php ^7.1.3 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 36
        - symfony/var-dumper is locked to version v5.0.1 and an update of this package was not requested.
        - symfony/var-dumper v5.0.1 requires php ^7.2.5 -> your php version (8.1.8) does not satisfy that requirement.
      Problem 37
        - laminas-api-tools/api-tools-api-problem 1.4.0 requires php ^7.3 || ~8.0.0 -> your php version (8.1.8) does not satisfy that requirement.
        - laminas-api-tools/api-tools-admin 2.0.1 requires laminas-api-tools/api-tools-api-problem ^1.3 -> satisfiable by laminas-api-tools/api-tools-api-problem[1.4.0].
        - laminas-api-tools/api-tools-admin is locked to version 2.0.1 and an update of this package was not requested.
    

    How to reproduce

    composer install

    Expected behavior

    install everything with php 8.1

    Bug 
    opened by worthwhileindustries 8
  • Remove zendframework-bridge

    Remove zendframework-bridge

    Feature Removal

    This component requires the zendframework-bridge. Skeletons are meant to be used for fresh projects and fresh projects should not require this component at all.

    https://github.com/laminas-api-tools/api-tools-skeleton/blob/0c63fe17a892de4602559301268a926ba4445d9c/composer.json#L38

    Feature Removal Help Wanted 
    opened by boesing 0
  • Create a new RPC service using Laminas API tools >  Error creating service (Code: 422): Failed Validation

    Create a new RPC service using Laminas API tools > Error creating service (Code: 422): Failed Validation

    Issue Report

    | Q | A |------------ | ------ | 8.0.16 | PHP

    Not able to create an RPC service, I'm getting the below error

    Error creating service (Code: 422): Failed Validation

    REST service is working fine. The problem is only with the RPC service which is I do not understand. Can someone please help me? Thanks in advance. :-) I have attached the screenshot of composer.json for reference. Screenshot from 2022-03-04 09-45-38

    Screenshot from 2022-03-04 09-06-33

    Bug 
    opened by ranjith-2517 2
  • Cannot create database adapter or New API - it does not save

    Cannot create database adapter or New API - it does not save

    Bug Report

    | Q | A |------------ | ------ | Version(s) | 1.7 / 1.5 / 1.6

    Summary

    After save the adapater, the fields are blank and after refresh of page the data adapter is lost.

    Current behavior

    How to reproduce

    Expected behavior

    Bug 
    opened by jozefnad 7
Releases(1.8.0)
Owner
Laminas API Tools
MVC-based API tooling for creating and deploying your APIs.
Laminas API Tools
A collection of tools to help with PHP command line utilities

PHP Command Line Tools A collection of functions and classes to assist with command line development. Requirements PHP >= 5.3 Suggested PHP extensions

WP-CLI 651 Dec 21, 2022
:crystal_ball: Better Reflection is a reflection API that aims to improve and provide more features than PHP's built-in reflection API.

Better Reflection Better Reflection is a reflection API that aims to improve and provide more features than PHP's built-in reflection API. Why is it b

Roave, LLC 1.1k Dec 15, 2022
PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD. PHPMD can be seen as an user friendly frontend application for the raw metrics stream measured by PHP Depend.

PHPMD PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD. PHPMD can be seen as an user friendly

PHP Mess Detector 2.1k Jan 8, 2023
Anticheat for PocketMine-MP API-3.0.0.

Lunar AntiCheat for PocketMine-MP API 3.0.0 This project is in fast-development mode, anything may change. This anticheat is used in production server

TinyRick 19 Jan 4, 2023
laminas-di integration for laminas-servicemanager

laminas-servicemanager-di This package is considered feature-complete, and is now in security-only maintenance mode, following a decision by the Techn

Laminas Project 4 Jul 10, 2022
Silex Skeleton - a fully-functional Silex application that you can use as the skeleton for your new applications

Silex Skeleton - a fully-functional Silex application that you can use as the skeleton for your new applications

Silex 789 Dec 5, 2022
Mail sending module for Mezzio and Laminas MVC with support for file attachment and template email composition

This module provides an easy and flexible way to send emails from Mezzio and Laminas MVC applications (formerly known as Zend Expressive and Zend MVC). It allows you to pre-configure emails and transports, and then send those emails at runtime.

null 82 Jan 16, 2022
Php-gamer - A repo with PHP 8.1, Swoole and Laminas. And of course, Docker in the front.

PHP-Gamer Instructions for run this app: First time $ git clone [email protected]:fatorx/php-gamer.git $ cd php-gamer $ chmod +x docker-build.sh $ chmod

Fabio de Souza 6 Oct 6, 2022
laminas-password-validator provides a validator for character-set based input validation.

laminas-password-validator laminas-password-validator provides a validator for character-set based input validation. Installation composer require pra

null 1 Mar 8, 2022
laminas-memory manages data in an environment with limited memory

Memory objects (memory containers) are generated by the memory manager, and transparently swapped/loaded when required.

Laminas Project 5 Jul 26, 2022
A PHP project template with PHP 8.1, Laminas Framework and Doctrine

A PHP project template with PHP 8.1, Laminas Framework and Doctrine

Henrik Thesing 3 Mar 8, 2022
laminas-xml2json provides functionality for converting XML structures to JSON

laminas-xml2json This package is considered feature-complete, and is now in security-only maintenance mode, following a decision by the Technical Stee

Laminas Project 13 Dec 28, 2022
Laminas\Text is a component to work on text strings

laminas-text This package is considered feature-complete, and is now in security-only maintenance mode, following a decision by the Technical Steering

Laminas Project 38 Dec 31, 2022
Laminas\Console is a component to design and implement console applications in PHP.

laminas-console This package is abandoned and will receive no further development! We recommend using laminas/laminas-cli. Laminas\Console is a compon

Laminas Project 10 Nov 27, 2021
Doctrine ORM Module for Laminas

Doctrine ORM Module for Laminas The DoctrineORMModule leverages DoctrineModule and integrates Doctrine ORM with Laminas quickly and easily. The follow

Doctrine 418 Dec 25, 2022
Use this skeleton application to quickly setup and start working on a new Slim Framework 4 application

Slim Framework 4 Skeleton Application Use this skeleton application to quickly setup and start working on a new Slim Framework 4 application. This app

Slim Framework 1.5k Dec 25, 2022
DooTask is a lightweight open source online project task management tool that provides various document collaboration tools, online mind mapping, online flowcharting, project management, task distribution, instant IM, file management and other tools.

DooTask is a lightweight open source online project task management tool that provides various document collaboration tools, online mind mapping, online flowcharting, project management, task distribution, instant IM, file management and other tools.

kuaifan 3k Jan 5, 2023
Mako skeleton application.

Mako Framework Mako is a lightweight and easy to use PHP framework based on the MVC architectural design pattern. Check out the documentation and crea

Mako Framework 27 Nov 12, 2022
Slim Framework 4 Skeleton Application

Slim Framework 4 Skeleton Application Use this skeleton application to quickly setup and start working on a new Slim Framework 4 application. This app

Slim Framework 1.5k Dec 29, 2022
CodeIgniter 4-based application skeleton

Bonfire 2 Just getting started. More details at Patreon What is Bonfire? Bonfire will be a robust application skeleton for CodeIgniter 4-based applica

Lonnie Ezell 79 Dec 25, 2022