Db component from Zend Framework

Overview
Comments
  • Implement our own error handler for db2_prepare

    Implement our own error handler for db2_prepare

    db2_prepare() may issue a warning in addition to returning false. If you have an error handler set (e.g. in the Expressive pipeline) then the message created is "db2_prepare(): Statement Prepare Failed" which is not helpful.

    Therefore, we create our own error handler and trap this ourselves so that we can throw an ErrorException with more information from db2_stmt_errormsg().

    I've left the previous handling as I don't know PHP extension code well enough to be 100% sure that db2_prepare() always generates a warning when it returns false.

    enhancement 
    opened by akrabat 16
  • Regression version 2.9.3: Using limit in subselects with PDO causes bindParameters to fail

    Regression version 2.9.3: Using limit in subselects with PDO causes bindParameters to fail

    Sub queries with limit seems not to work like it is supposed to anymore in version 2.9.3 in combination with PDO. Likely the regression has been introduced in the following PR.

    https://github.com/zendframework/zend-db/pull/300

    Code to reproduce the issue

    $queryBuilder = \Zend\Db\Sql\Sql();
    
    $update = $queryBuilder->update('table1');
    $update->set([ 'start_date' => 'now()']);
    
    $select = $queryBuilder
        ->select('table1')
        ->columns(['id'])
        ->where([
            'start_date' => null,
            'completed_date' => null,
        ])
        ->limit(25);
    
    $update->where(new In('id', $select));
    
    $statement = $queryBuilder->prepareStatementForSqlObject($update);
    $statement->execute();
    

    Expected results

    The query should work as expected like in version 2.9.2

    Actual results

    The following query and parameters are generated:

    UPDATE "table1" 
    SET "start_date" = :c_0 
    WHERE "id" IN (
        SELECT "table1"."id" AS "id" 
        FROM "table1" 
        WHERE "start_date" IS NULL 
        AND "completed_date" IS NULL 
        LIMIT :limit
    )
    

    Parameters

    array(2) {
        ["c_0"]=> string(5) "now()"
        ["subselect1limit"]=>  int(25)
    }
    

    An exception occurs:

    exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: :subselect1limit' in vendor/zendframework/zend-db/src/Adapter/Driver/Pdo/Statement.php:298
    
    Stack trace:
    
    #0 vendor/zendframework/zend-db/src/Adapter/Driver/Pdo/Statement.php(298): PDOStatement->bindParam(':subselect1limi...', 25, 1)
    
    #1 vendor/zendframework/zend-db/src/Adapter/Driver/Pdo/Statement.php(232): Zend\Db\Adapter\Driver\Pdo\Statement->bindParametersFromContainer()
    
    <snip>
    
    bug 
    opened by rjd22 15
  • Fixes the special characters in bindParam for PDO

    Fixes the special characters in bindParam for PDO

    This PR solve #35 and replaces #178. The $name in bindParam are replaced with the following, due to the PDO restriction [0-9a-zA-Z_]:

    return ':' . md5($name);
    

    For instance, a filed name test$ will be translated in :79f5d7a7e10367f279c2500dcd03b3de as bind param name. I used the md5() approach after some benchmark tests, see comments and commits below. I also provided unit test and integrational test.

    bug 
    opened by ezimuel 14
  • SQL Server NVARCHAR support

    SQL Server NVARCHAR support

    To handle UTF columns (eg, store Russian characters in column) SQL server needs data type NVARCHAR.

    Either need to add NVarchar class to Ddl\Column namespace, or add as an optional parameter column->setMultibyte(true) which appends N to type property.

    enhancement question 
    opened by alextech 12
  • Pdo/Connection::connect() should not pass platform keys to \PDO constructor

    Pdo/Connection::connect() should not pass platform keys to \PDO constructor

    This is to resolve issue #185. With the pdo_ibm driver when passed the platform & platform_options keys it stops processing anything after that. Might be an issue with other drivers but I'm not sure. Since the platform & platform_options key are specifically related to zend-db I don't see any reason we'd ever want them passed to \PDO. Also even if the base \PDO driver needed those keys for some reason they could be put in a driver_options array which is what I am personally already doing anyway.

    opened by alshayed 11
  • [ZF3] refactor sql

    [ZF3] refactor sql

    Main architecture issue - current SqlObjects includes SqlBuilders. This is not good design, it's coupe two separate things together - Describing and Building Query, including:

    • functionality of sql objects and their builders realized in the same class, which creates problems with modifiable classes, stability and support.
    • multiple entry points to build sql strings
    • not possible to use builders for Expression. As sample concat() function have different syntax for various DB
    • not possible to build nested sql. As sample Insert::into('foo')->select(Select::from('bar')->limit(10)) not work for SqlServer
    Solution:
    • builders functionality moved to separate classes.
    • added builders for Expressions
    • one entry point Builder\Builder::getSqlString() and Builder\Builder::prepareStatement().
    Additionally was changed:
    • AbstractSqlBuilder::createSqlFromSpecificationAndParameters() - more readable and flexible specifications
    • Expression parameters always return ExpressionParameter object
    • objects, are used tables, always return TableSource or TableIdentifier
    • optimized UnitTests, added tests for various platforms
    • optimized builders for Select::limit() and Select::offset()
    • move duplicates from MySql\Ddl\CreateTableBuilder and MySql\Ddl\AlterTableBuilder to Mysql\Ddl\Column\ColumnBuilder
    • Sql\Insert - add multiple values
    • Sql\Ddl\DropTable - add 'IF EXISTS'
    • add Sql\Ddl\Sql oblect for DDL
    • rename Sql\Join to Sql\Joins
    • rename Sql\SqlInterface to Sql\SqlObjectInterface and Sql\PreparableSqlInterface to Sql\PreparableSqlObjectInterface
    BC Break Needs Documentation 
    opened by turrsis 11
  • Bugfix/array should be valid datasource for resultset

    Bugfix/array should be valid datasource for resultset

    When I upgraded from an older version of Zend\Db I found that certain unit tests in the client project were failing. When a datasource provided to a ResultSet is an array, the ResultSet should work out of the box. It didn't, because current() did not account for a datasource which has entered the system as just an array, while the buffer is flagged -1, when the ResultSet was initialized with such a datasource. So that flag on the buffer can be used to early out current() in such a situation.

    awaiting author updates 
    opened by bartmcleod 10
  • Zend\Db\ResultSet\ResultSet->current() returns false instead of NULL

    Zend\Db\ResultSet\ResultSet->current() returns false instead of NULL

    This problem was there in version 2.7. It was fixed in 2.8, but came back in 2.9.

    • Database: 10.0.35-MariaDB
    • PHP version: 7.2.7
    • Zend Db version: 2.9.3

    To reproduce, use a database with some empty table, and execute:

    $myAdapter = new \Zend\Db\Adapter\Adapter([
        'host'      => 'mariadb',
        'driver'    => 'Mysqli',
        'username'  => 'devppl',
        'password'  => '******',
        'database'  => 'mydatabase',
        'charset'   => 'utf8',
        'options'   => ['buffer_results' => true]
    ]);
    
    $tableGateway = new \Zend\Db\TableGateway\TableGateway('myEmptyTable', $myAdapter);
    $row = $tableGateway->select('myField = 999')->current();
    var_export($row);
    

    Expected result would be NULL, I get false instead.

    I noticed that when I set buffer_results to false, I don't have the bug.

    bug 
    opened by WillyBaldy 9
  • Change Return Type in selectWith() method

    Change Return Type in selectWith() method

    Change Return Type of selectWith() method

    Provide a narrative description of what you are trying to accomplish:

    • [x] Are you fixing a bug?
      • [x] Detail how the bug is invoked currently.

    phpstan raises an error saying that ResulSetInterface has no method current().

    • [x] Detail the original, incorrect behavior.

    The selectWith() method has defined the @returnType as ResultSetInterface. The method calls the method executeSelect(), which returns ResultSet. The return types should be the same. removes also the @throws flag as it doesn't throw an exception itself, but just the called methods.

    • [ ] Detail the new, expected behavior.

    • [ ] Base your feature on the master branch, and submit against that branch.

    • [ ] Add a regression test that demonstrates the bug, and proves the fix.

    • [ ] Add a CHANGELOG.md entry for the fix.

    • [ ] Are you creating a new feature?

      • [ ] Why is the new feature needed? What purpose does it serve?
      • [ ] How will users use the new feature?
      • [ ] Base your feature on the develop branch, and submit against that branch.
      • [ ] Add only one feature per pull request; split multiple features over multiple pull requests
      • [ ] Add tests for the new feature.
      • [ ] Add documentation for the new feature.
      • [ ] Add a CHANGELOG.md entry for the new feature.
    • [x] Is this related to quality assurance?

    • [ ] Is this related to documentation?

    opened by lowtower 9
  • Zend/DB invalid params

    Zend/DB invalid params

    Version: Zend-db version: 2.9.*

    Issue: When binding named params into sql query, the sql trows error: "SQLSTATE[HY093]: Invalid parameter number: parameter was not defined".

    Sql:

    $sql = "SELECT Version FROM `SystemInfo` WHERE `Name` = :infoName ORDER BY `SystemInfoID` DESC LIMIT 1";

    PHP:

    $params = [':infoName' => 'version' ];

    $this->getAdapter() ->createStatement($sql) ->execute($params) ->next()

    Explained:

    This works on any of previous versions before 2.9.*, the fix was to rollback to version 2.8.2

    bug 
    opened by TakeoO 9
  • Add support for nested query in field params

    Add support for nested query in field params

    Sorry, previous request was incorrect.

    This one is correct. Add support for multi limit in nested queries; That fix need for nested queries inside field parameters;

    In previous thread was mentioned that this is fix for that issue: #262

    Fix bug for nested queries inside field parameters;

    opened by tptrixtop 8
  • AdapterInterface does not define query as a method

    AdapterInterface does not define query as a method

    Description of what I am trying to accomplish:

    • Given the recommendation here to fall back to manual sql using the adapter in order to accomplish FOR UPDATE statements in MariaDb / MySQL environments, one should still be able to inject an interface into their class objects.
    • The \Zend\Db\Adapter\Adapter implements no such interface which defines a query method

    Code to reproduce the issue

    class FooBar
    {
        /**
         * @var \Zend\Db\Adapter\AdapterInterface
         */
        private $adapter;
    
        public function  __construct(
            \Zend\Db\Adapter\AdapterInterface $adapter
        ) {
            $this->adapter = $adapter
        }
    
        public function getRecordById(int $id): \ArrayObject
        {
            /**
             * @var \Zend\Db\ResultSet\ResultSet $resultSet
             */
            $resultSet = $this->adapter->query('SELECT * FROM foo_bar WHERE id = :id FOR UPDATE', ['id' => $id]);
            return $resultSet->current();
        }
    }
    

    Expected results

    • AdapterInterface should have query defined so that it is a known accessible method. This will:
      • Allow for DI replacement in applications that may require such things
      • Allow for mocking of the Interface in order to accomplish unit testing of the class

    Actual results

    Since (in my application) \Zend\Db\Adapter\Adapter is the concrete class that is injected at run time, the method still works. However this leads to:

    • IDE shows an error as it is not a known method of the interface
    • Inability to properly unit test the class since I cannot call ->query on a mocked instance of \Zend\Db\Adapter\AdapterInterface
    opened by dfelton 1
  • add support for BLOB data in OCI8 driver

    add support for BLOB data in OCI8 driver

    • add 2 new data types in ParameterContainer class in order to manage differently BLOB from CLOB,
    • for oci8 driver: add a new case statement in bindParametersFromContainer() method to save data binded as BLOB
    enhancement 
    opened by parktrip 9
  • Memory Leak Issue When Connecting Via DB2 Connect

    Memory Leak Issue When Connecting Via DB2 Connect

    Provide a narrative description of what you are trying to accomplish.

    There appears to be a memory leak issue when connecting to a DB2 database via the DB2 Connect driver while using the Zend DB package.

    OS: Ubuntu 18.04.1 LTS PHP Version: PHP 7.2.19-0ubuntu0.18.04.2 (cli) (built: Aug 12 2019 19:34:28) ( NTS ) DB2 Connect Version: 11.1

    Explanation of Diagnosis: When I run a similar process with a simple PDO object, I do not get the same memory allocation issues. Here is the PDO code I was using to check:

    $conn = new PDO('ibm:MYDEVENV', 'MYUSERNAME', 'MYPASSWORD');
    $result = $conn->query('select ACCT_UNIT from MYLIBRARY.MYTABLE where MYVALUE = 113;');
    if (!$result) {
    	var_dump($conn->errorInfo());
    }
    while ($row = $result->fetch()) {
    	var_dump($row);
    }
    

    The outcome is as expected:

    array(2) {
      ["ACCT_UNIT"]=>
      string(15) "113            "
      [0]=>
      string(15) "113            "
    }
    

    When this database connection and query are run using Zend-Db package, a memory allocation error is thrown. See below:

    Code to reproduce the issue

    $configArray = array(
        'driver' => 'pdo_ibm',
        'dsn' => 'ibm:MYDEVENV',
        'platform' => 'IbmDb2',
        'platform_options' => [
            'quote_identifiers' => false,
        ],
        'driver_options' => [
            'isDefaultTableAdapter' => true,
            'i5_naming' => 'DB2_I5_NAMING_ON',
            'autocommit' => 'DB_AUTOCOMMIT_OFF',
            'i5_lib' => 'MYLIBRARY'
        ],
        'username' => 'MYUSERNAME',
        'password' => 'MYPASSWORD',
    );
    $adapter = new \Zend\Db\Adapter\Adapter($configArray);
    $sql = 'select ACCT_UNIT from MYLIBRARY.MYTABLE where MYFIELD = :MYVALUE';
    $parameters = ['MYVALUE' => 113];
    try {
           $result = $adapter->query($sql, $parameters);
    
           if ($result instanceof ResultSet)
           {
                $arrayResults = $result->toArray();
    
                if (sizeof($arrayResults) === 1)
                    return $arrayResults[0];
                else {
                    $arrayResults[] = array('ACCT_UNIT'=>'0000');
                    return $arrayResults[0];
                 }
            }
    } catch (\Exception $e) {
           $this->appLogger->crit($e);
           $errorMessage = $e->getMessage();
           throw new \Exception ($errorMessage);
    }
    

    Expected results

    The query should return the value it was passed as a parameter inside an associative array: ["ACCT_UNIT" => "113"]

    Actual results

    I received the following error:

    mmap() failed: [12] Cannot allocate memory
    PHP Fatal error:  Out of memory (allocated 2097152) (tried to allocate 140346646331424 bytes) in /tmp/vendor/zendframework/zend-db/src/Adapter/Driver/Pdo/Connection.php on line 425
    
    opened by StoneMorKnight 1
  • Some of AbstractPlatform inheritors are preventing \PDO disconnect

    Some of AbstractPlatform inheritors are preventing \PDO disconnect

    Some of Zend\Db\Adapter\Platform\AbstractPlatform inheritors (Mysql, Oracle, Postgresql, Sqlite, SqlServer) holding the reference of \PDO object (even if DriverInterface passed into constructor, because quote methods are reassigning resource reference of connection to local variable resource). This causing problems when you using Platform class and want to disconnect the \PDO instance with disconnect method of the ConnectionInterface.

    We found that problem when noticed ~40k+ TCP connections on 3306 port stucked in CLOSE_WAIT state after disconnecting and exec another php script and exit original script.

    Code to reproduce the issue

            $testConnection = function() {
                $mypid = getmypid();
                $lsof = shell_exec("lsof -i -P -n | grep 3306 | grep $mypid");
                echo ($lsof === null ? 'no connection' : 'connection established') . PHP_EOL;
            };
    
            // take your adapter with mysql driver inside
            $db = self::$infrastructure->db();
    
            $testConnection();
    
            $db->getDriver()->getConnection()->connect();
    
            $testConnection();
    
            $db->getDriver()->getConnection()->disconnect();
    
            $testConnection();
    
            $db->getDriver()->getConnection()->connect();
    
            $testConnection();
    
            $db->getPlatform()->quoteValue('test');
            $db->getDriver()->getConnection()->disconnect();
    
            $testConnection(); // are still connected? yes :(
    

    Expected results

    Connection is disconnected even when using quoteValue method of platform object

    Actual results

    Connection established

    opened by jadrovski 1
  • Incorrect Sql Expression parameters when passing zero in the constructor

    Incorrect Sql Expression parameters when passing zero in the constructor

    I am trying to create an expression that has zero as the parameter value. However, the parameters incorrectly show as empty.

    Code to reproduce the issue

    $expr = new \Zend\Db\Sql\Expression('?', '0');
    print_r($expr->getParameters());
    

    Expected results

    It prints "0"

    Actual results

    It prints empty array

    Proposed fix

    https://github.com/zendframework/zend-db/blob/master/src/Sql/Expression.php#L59

    In Zend\Db\Sql\Expression, update the constructor to explicitly check for '0' when setting parameters

    if ($parameters || $parameters === '0') {
         $this->setParameters($parameters);
    }
    
    opened by albertor24 2
Releases(release-2.11.0)
  • release-2.11.0(Dec 31, 2019)

    Added

    • #336 adds InsertIgnore class for "INSERT IGNORE" usage (usable in MySQL platform).

    • #356 adds support for IN (NULL) for empty value-set.

    Changed

    • Nothing.

    Deprecated

    • Nothing.

    Removed

    • Nothing.

    Fixed

    • #146 fixes setting correct value for lastInsertValue pre-insert in SequenceFeature.
    Source code(tar.gz)
    Source code(zip)
  • release-2.10.1(Dec 31, 2019)

    Added

    • Nothing.

    Changed

    • Nothing.

    Deprecated

    • Nothing.

    Removed

    • Nothing.

    Fixed

    • #382 fixes Zend\Db\Sql\Expression to allow 0 value for parameter.

    • #395 fixes PHP 7.4 compatibility.

    • #392 fixes MetadataFeature to work with TableIdentifier.

    • #399 fixes accessing constraint metadata within the Oracle adapter.

    • #375 fixes detecting number of replacements in Zend\Db\Sql\Expression.

    • #377 allows any AdapterInterface instance in RowGateway.

    • #342 fixes deleting from aliased tables.

    • #386 fixes too strongly casting integer parameters in PDO adapter.

    Source code(tar.gz)
    Source code(zip)
  • release-2.10.0(Feb 25, 2019)

    NOTE: this release introduces a potential BC break in Zend\Db\Adapter\Driver\Mysqli\Result::currentData with the change of default value from false to null (regression from 2.8). This was the previous behavior of version 2.8, changed in 2.9. This change may affect classes that extends Zend\Db\Adapter\Driver\Mysqli\Result.

    Added

    • #157 added support of Zend\Db\Sql\TableIdentifier in DDL
    • #345 allow usage with zend-hydrator v3
    • #346 adds support for PHP 7.3

    Changed

    • Nothing.

    Deprecated

    • Nothing.

    Removed

    • Nothing.

    Fixed

    • #303 fixes #295 issue: handle empty array as datasource at AbstractResultSet::initialize() at PHP 7.2
    • #313 test AbstractResultSet::current() to return null on empty array
    • #329 fixes Exception thrown when calling prepareStatementForSqlObject on a Select with a sub-Select that has limit and/or offset set
    • #337 fixes #330 current NULL for mysqli
    • #338 restore missing use ResultSet in AbstractTableGateway
    • #341 fixes undefined variable bug in MetadataFeature
    • #357 fixes named params in subquery - limit and offset (issue #355)
    Source code(tar.gz)
    Source code(zip)
  • release-2.9.3(Apr 9, 2018)

    Added

    • Nothing.

    Changed

    • Nothing.

    Deprecated

    • Nothing.

    Removed

    • Nothing.

    Fixed

    • #295 fix error when datasource passed to AbstractResultSet::initialize() is empty array at PHP 7.2 environment

    • #300 fix error for nested queries inside field parameters

    • #301 fix for issue with set fields that exists in different tables in one query

    • #304 fix PDO bind parameter name to use field name with extended charset (PDO only supports alphanumeric and underscore for placeholder/parameter names)

    Source code(tar.gz)
    Source code(zip)
  • release-2.9.2(Dec 11, 2017)

    Added

    • Nothing.

    Changed

    • Nothing.

    Deprecated

    • Nothing.

    Removed

    • Nothing.

    Fixed

    • #292 ensures that you may reference bound parameter names using a leading colon (:) character when using the PDO adapter. (The leading colon is not technically necessary, as the adapter will prefix for you; however, this ensures portability with vanilla PDO.)
    Source code(tar.gz)
    Source code(zip)
  • release-2.9.1(Dec 7, 2017)

    Added

    • Nothing.

    Changed

    • #289 reverts a change introduced in 2.9.0 and modifies the behavior of the PDO adapter slightly to remove a regression. In 2.9.0, when binding parameters with names that contained characters not supported by PDO, we would pass the parameter names to md5(); this caused a regression, as the SQL string containing the parameter name was not also updated.

      This patch modifies the behavior during a bind-operation to instead raise an exception if a parameter name contains characters not supported by PDO.

    Deprecated

    • Nothing.

    Removed

    • Nothing.

    Fixed

    • Nothing.
    Source code(tar.gz)
    Source code(zip)
  • release-2.9.0(Dec 6, 2017)

    Added

    • #216 added AFTER support in ALTER TABLE syntax for MySQL
    • #223 added support for empty values set with IN predicate
    • #271 added support for dash character on MySQL identifier
    • #273 added support for implementing an error handler for db2_prepare
    • #275 added support for LIMIT OFFSET for db2
    • #280 added version dsn parameter for pdo_dblib

    Deprecated

    • Nothing.

    Removed

    • Nothing.

    Fixed

    • #205 fixes the spaces in ORDER BY syntax
    • #224 fixes how parameters are bound to statements in the PDO adapter. PDO has a restriction on parameter names of [0-9a-zA_Z_]; as such, the driver now hashes the parameter names using md5() in order to ensure compatibility with other drivers.
    • #229 fixes the support of SSL for mysqli
    • #255 fixes ResultSet with array values
    • #261 fixes Exception in Firebird driver doesn't support lastInsertId
    • #276 fixes the support of PHP 7.2
    • #287 fixes the usage of count() with PHP 7.2
    Source code(tar.gz)
    Source code(zip)
  • release-2.8.2(Aug 9, 2016)

    Added

    • #110 prepared the documentation for publication at https://zendframework.github.io/zend-db/
    • #114 add Adapter\Adapter::class to alias against Adapter\AdapterInterface::class

    Deprecated

    • Nothing.

    Removed

    • Nothing.

    Fixed

    • #154 fixes the how the COMBINE operator is applied to SQLite adapters, ensuring a valid UNION statement is generated.
    • #112 fixes the test on the number of replacements when using the same variable name.
    • #115 TableGateway update method was incorrect when specifying default join declaration.
    • #145 Fix MSSQL Select when encounting DISTINCT and OFFSET and LIMIT together.
    • #153 Runtime exception threw fatal error due to incorrect spelling of the class when a DSN did not exist.
    Source code(tar.gz)
    Source code(zip)
  • release-2.8.1(Apr 18, 2016)

    Added

    • Nothing.

    Deprecated

    • Nothing.

    Removed

    • Nothing.

    Fixed

    • #100 fixes the JOIN behavior to re-allow selecting an empty column set from the joined table.
    • #106 fixes an issue in the test suite when ext/pgsql is enabled, but no databases are available.
    Source code(tar.gz)
    Source code(zip)
  • release-2.8.0(Apr 12, 2016)

    Added

    • #92 adds the class Zend\Db\Sql\Join for creating and aggregating JOIN specifications. This is now consumed by all Zend\Db\Sql implementations in order to represent JOIN statements.
    • #92 adds support for JOIN operations to UPDATE statements.
    • #92 adds support for joins to AbstractTableGateway::update; you can now pass an array of specifications via a third argument to the method.
    • #96 exposes the package as config-provider/component, but adding:
      • Zend\Db\ConfigProvider, which maps the AdapterInterface to the AdapterServiceFactory, and enables the AdapterAbstractServiceFactory.
      • Zend\Db\Module, which does the same, for a zend-mvc context.

    Deprecated

    • Nothing.

    Removed

    • Nothing.

    Fixed

    • Nothing.
    Source code(tar.gz)
    Source code(zip)
  • release-2.7.1(Apr 12, 2016)

    Added

    • Nothing.

    Deprecated

    • Nothing.

    Removed

    • Nothing.

    Fixed

    • #71 updates the Pgsql adapter to allow passing the connection charset; this can be done with the charset option when creating your adapter.
    • #76 fixes the behavior of Zend\Db\Sql\Insert when an array of names is used for columns to ensure the string names are used, and not the array indices.
    • #91 fixes the behavior of the Oci8 adapter when initializing a result set; previously, it was improperly assigning the count of affected rows to the generated value.
    • #95 fixes the IbmDb2 platform's quoteIdentifier() method to properly allow # characters in identifiers (as they are commonly used on that platform).
    Source code(tar.gz)
    Source code(zip)
  • release-2.7.0(Feb 22, 2016)

    Added

    • Nothing.

    Deprecated

    • Nothing.

    Removed

    • Nothing.

    Fixed

    • #85 and #87 update the code base to be forwards compatible with:
      • zend-eventmanager v3
      • zend-hydrator v2.1
      • zend-servicemanager v3
      • zend-stdlib v3
    Source code(tar.gz)
    Source code(zip)
  • release-2.6.2(Dec 9, 2015)

    Added

    • #49 Add docbook documentation.

    Deprecated

    • Nothing.

    Removed

    • Nothing.

    Fixed

    • #55 Implement FeatureSet canCallMagicCall and callMagicCall methods
    • #56 AbstractResultSet::current now does validation to ensure an array.
    • #58 Fix unbuffered result on MySQLi.
    • #59 Allow unix_socket parameter
    Source code(tar.gz)
    Source code(zip)
  • release-2.6.1(Oct 14, 2015)

Owner
Zend Framework
Zend Framework
Debug component from Zend Framework

zend-debug Zend\Debug is a component that help the debugging of PHP applications. In particular it offers a static method Zend\Debug\Debug::dump() tha

Zend Framework 12 Jan 29, 2020
Navigation component from Zend Framework

zend-navigation Repository abandoned 2019-12-31 This repository has moved to laminas/laminas-navigation. Zend\Navigation is a component for managing t

Zend Framework 19 Jun 30, 2021
Json component from Zend Framework

zend-json Repository abandoned 2019-12-31 This repository has moved to laminas/laminas-json. Zend\Json provides convenience methods for serializing na

Zend Framework 102 Nov 17, 2022
A panel created based on the Zend Framework MVC framework

?? Painel MyZap2.0 Com ZendFramework 3 Descrição Esse é um painel criado como estudo pessoal do framework (Zend Framework MVC) não foi criado para fin

Jonathan Henrique 9 Jun 10, 2022
zend-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.

Zend Framework 16 Aug 29, 2020
Very easy to use a current limiting component, the code is very simple, based on the webman framework.

Very easy to use a current limiting component, the code is very simple, based on the webman framework.

nsp-team 13 Dec 29, 2022
Iranian wallet provider's integration component for Laravel Framework

Iranian Wallets Integration Component For Laravel Iranian Wallet provider integration handler for Laravel 8.1+ known as LaraWallet component completel

PHP Monsters 11 Dec 26, 2022
A PHP component to convert HTML into a plain text format

html2text html2text is a very simple script that uses DOM methods to convert HTML into a format similar to what would be rendered by a browser - perfe

Jevon Wright 423 Dec 29, 2022
Powerful and flexible component for building site breadcrumbs.

Phalcon Breadcrumbs Phalcon Breadcrumbs is a powerful and flexible component for building site breadcrumbs. You can adapt it to your own needs or impr

Serghei Iakovlev 40 Nov 5, 2022
This component provides a collection of functions/classes using the symfony/intl package when the Intl extension is not installed.

Symfony Polyfill / Intl: ICU This package provides fallback implementations when the Intl extension is not installed. It is limited to the "en" locale

Symfony 2.4k Jan 6, 2023
Debug - The Debug component provides tools to ease debugging PHP code.

Debug Component CAUTION: this component is deprecated since Symfony 4.4. Instead, use the ErrorHandler component. The Debug component provides tools t

Symfony 7.3k Jan 8, 2023
The Cache component provides an extended PSR-6 implementation for adding cache to your applications.

Symfony PSR-6 implementation for caching The Cache component provides an extended PSR-6 implementation for adding cache to your applications. It is de

Symfony 3.8k Jan 3, 2023
Messaging solutions for PHP - It contains advanced features build on top of a transport component

It contains advanced features build on top of a transport component. Client component kind of plug and play things or consumption component that simplify message processing a lot. Read more about it in documentation.

Enqueue 175 Jan 3, 2023
This component changes the way Magento 2 generates Interceptor classes

ABOUT This component changes the way Magento 2 generates Interceptor classes (a mechanism that allows plugins to work together). Instead of generating

Creatuity Corp. 64 Dec 5, 2022
This component simplifies file validation and uploading.

This component simplifies file validation and uploading.

Brandon Savage 1.7k Dec 27, 2022
Quick package/plugin/component (repo) lookup for your favourite package managers

Package Managers (Download latest release) Package Repo Search Quick package/plugin/component (repo) lookup for your favourite package managers.

will Farrell 689 Dec 27, 2022
The ErrorHandler component provides tools to manage errors and ease debugging PHP code

ErrorHandler Component The ErrorHandler component provides tools to manage errors and ease debugging PHP code. Getting Started $ composer require symf

Symfony 2.2k Jan 3, 2023
The VarExporter component allows exporting any serializable PHP data structure to plain PHP code.

The VarExporter component allows exporting any serializable PHP data structure to plain PHP code. While doing so, it preserves all the semantics associated with the serialization mechanism of PHP (__wakeup, __sleep, Serializable).

Symfony 1.8k Jan 1, 2023
The WebLink component manages links between resources

The WebLink component manages links between resources. It is particularly useful to advise clients to preload and prefetch documents through HTTP and HTTP/2 pushes.

Symfony 1.3k Dec 22, 2022