laminas-di integration for laminas-servicemanager

Overview

laminas-servicemanager-di

This package is considered feature-complete, and is now in security-only maintenance mode, following a decision by the Technical Steering Committee. If you have a security issue, please follow our security reporting guidelines. If you wish to take on the role of maintainer, please nominate yourself

You can now use laminas/laminas-di directly with laminas/laminas-servicemanager.

Build Status Coverage Status

Provides integration for laminas-di within laminas-servicemanager

You might also like...
Krayin Zoom Integration

1. Introduction: Krayin Zoom Integration. It packs in lots of demanding features that allows your business to scale in no time: Admin user can connect

QuickBooks Integration for PHP

QuickBooks PHP DevKit QuickBooks integration support for PHP 5.x+ The package you've downloaded contains code and documentation for connecting various

Paddle.com API integration for Laravel with support for webhooks/events

Laravel Paddle This package provides an integration with Paddle.com for Laravel. Read the blogpost about the introduction of the package! Features Sup

Laravel Integration for Switchover PHP SDK. Feature Toggle Management made easy.

Switchover Laravel Integration Switchover Switchover is a Software-As-A-Service for managing feature toggles (aka switches, flags or feature flips) in

🧩 Laravel Query Builder integration for PhpStorm
🧩 Laravel Query Builder integration for PhpStorm

Laravel Query Laravel + DataGrip = ♥️ This plugin provides database integration for Laravel query builder. Features Schemas, tables, views and columns

TXP-Tweet - arc twitter - Twitter-Textpattern integration

TXP Tweet This is TXP Tweet, a collection of Textpattern plugins for Twitter integration. TXP Tweet consists of two plugins: arc_twitter (the core Tex

Hak tinymce - TinyMCE integration for Textpattern

This plugin adds a TinyMCE based WYSIWYG editor to Textpattern. Installation Upload the included TinyMCE distribution to somewhere in your document ro

MageCI - [ABADONED] Magento Continuous Integration Tools

Magento Continuous Integration Tools A set of tools to help set up a proper environment for testing magento Installation Installation is very easy tho

Algolia Search integration for Magento 1 - compatible with versions from 1.6.x to 1.9.x

Algolia Search for Magento 1.6+ End of Support 🚨 The Algolia Magento 1 extension has reached End of Life regarding support and maintenance. We do not

Comments
  • The DiAbstractServiceFactory causes recursion

    The DiAbstractServiceFactory causes recursion

    I'm using the \Zend\ServiceManager\Di\DiAbstractServiceFactory to initialize objects and resolve their dependencies. But I have an issue with recursion in the \Zend\ServiceManager\ServiceManager::has.

    I've added the \Zend\ServiceManager\Di\DiAbstractServiceFactory (it's also not a trivial task because service manager calls new during abstract factory initialization) to list of abstract factories.

    During object initialization by ServiceManager via DiAbstractServiceFactory the \Zend\ServiceManager\Di\DiServiceFactory::get will be called to create the object and this method calls \Zend\ServiceManager\ServiceManager::has to check if ServiceManager can create this object; in its turn ServiceManager will check if configured abstract factories have possibility to create this object.

    This behavior in the couple of \Zend\ServiceManager\Di\DiServiceFactory::get implementation causes the circular recursion. The previous implementation of \Zend\ServiceManager\ServiceManager::has was smarter and didn't have this issue.

    Specifying \Zend\ServiceManager\Di\DiServiceFactory::USE_SL_AFTER_DI during DiAbstractServiceFactory doesn't solve this issue because other dependencies cannot be resolved.

    zend-servicemanager-di 1.1.0 zend-servicemanager 3.3.0


    Originally posted by @joni-jones at https://github.com/zendframework/zend-servicemanager/issues/186

    opened by weierophinney 4
  • DiAbstractServiceFactory Recursion

    DiAbstractServiceFactory Recursion

    • [x] I was not able to find an open or closed issue matching what I'm seeing.
    • [x] This is not a question. (Questions should be asked on chat (Signup here) or our forums.)

    The Zend\ServiceManager\Di\DiAbstractServiceFactory when used as an abstract factory is causing recursion.

    The issue is caused by Zend\ServiceManager\ServiceManager::has() function implementation and Zend\ServiceManager\Di\DiAbstractServiceFactoryFactory: :__invoke() function which is using DiAbstractServiceFactory::USE_SL_BEFORE_DI and Zend\ServiceManager\Di\DiServiceFactory: :get() method which is sending the object initialization request back to the Zend\ServiceManager\ServiceManager and as a result creating the recursion.

    During object initialization by ServiceManager via DiAbstractServiceFactory the DiServiceFactory::get() method checks whether it should call ServiceManager (Service Locator) first by the following code (line 126) and therefore sends the object initialization request back to the ServiceManager because both conditions for the if statement are correct in this situation.

    // Allow this di service to get dependencies from the service locator BEFORE trying DI.
    if ($this->useContainer === self::USE_SL_BEFORE_DI && $this->container->has($name)) {    
         return $this->container->get($name);
     }
    

    As the object initialization request is sent or pushed back to the ServiceManager and the ServiceManager will forward the request again to DiAbstractServiceFactory therefore creating the recursion (sending the request back and forth) and the end result is system memory exhausted.

    Code to reproduce the issue

    Please just use Zend\ServiceManager\Di\DiAbstractServiceFactory as an abstract factory and then use ServiceManager to get/initialize an object. This object should not have any other factory class defined in the config. The only factory which should initialize this object should be Zend\ServiceManager\Di\DiAbstractServiceFactory.

    Expected results

    No Recursion.

    Actual results

    Recursion


    Originally posted by @mirza572 at https://github.com/zendframework/zend-servicemanager-di/issues/19

    opened by weierophinney 3
  • 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 0
  • Psalm integration

    Psalm integration

    Feature Request

    | Q | A |------------ | ------ | QA | yes

    Summary

    As decided during the Technical-Steering-Committee Meeting on August 3rd, 2020, Laminas wants to implement vimeo/psalm in all packages.

    Implementing psalm is quite easy.

    Required

    • [ ] Create a .psalm.xml.dist in the project root
    • [ ] Copy and paste the contents from this psalm.xml.dist
    • [ ] Run $ composer require vimeo/psalm
    • [ ] Run $ vendor/bin/psalm --set-baseline=psalm-baseline.xml
    • [ ] Add a composer script static-analysis with the command psalm --shepherd --stats
    • [ ] Add a new line to script: in .travis.yml: - if [[ $TEST_COVERAGE == 'true' ]]; then composer static-analysis ; fi
    • [ ] Remove phpstan from the project (phpstan.neon.dist, .travis.yml entry, composer.json require-dev and scripts)
    Optional
    • [ ] Fix as many psalm errors as possible.
    Enhancement Help Wanted hacktoberfest-accepted 
    opened by boesing 0
Owner
Laminas Project
Laminas components and MVC.
Laminas Project
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
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
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
A bot written in PHP which attempts to link IRC with SQL database, allowing for integration between platforms

Valeyard IRC-SQL-GateWay A bot written in PHP which attempts to link IRC with SQL database, allowing for integration between platforms. This bot is mo

Valerie Pond 10 Oct 6, 2022
Source control integration plugin framework for MantisBT, including support for Github, Gitlab, Bitbucket, Gitweb, Cgit, Subversion, Mercurial and more

Source control integration plugin framework for MantisBT, including support for Github, Gitlab, Bitbucket, Gitweb, Cgit, Subversion, Mercurial and more

MantisBT Community Plugins 175 Sep 3, 2022
Paddle.com API integration for Laravel with support for webhooks/events

Laravel Paddle This package provides an integration with Paddle.com for Laravel. Read the blogpost about the introduction of the package! Features Sup

Protone Media 179 Dec 16, 2022
the repository uses some of the code from php-meminfo to simplify integration

the repository uses some of the code from php-meminfo to simplify integration

Dmitriy Bulgar 1 Nov 18, 2021
Tabler.io bundle for Symfony - a backend/admin theme for easy integration

Tabler Bundle for Symfony This repository contains a Symfony bundle, integrating the fantastic Tabler.io HTML Template into your Symfony project. It s

Kevin Papst 22 Jan 2, 2023
Adds factory functions for WooCommerce to be used with wp-browser integration tests.

wp-browser-woocommerce This library simplifies testing of WooCommerce themes and plugins with wp-browser. Several Unit Test Factories are added that a

Level Level 12 Dec 29, 2022