for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace T4web\Migrations\Version;
use Zend\ServiceManager\FactoryInterface;
use Zend\ServiceManager\ServiceLocatorInterface;
use Zend\ServiceManager\AbstractPluginManager;
use Zend\Db\ResultSet\ResultSet;
use Zend\Db\TableGateway\TableGateway;
class TableGatewayFactory implements FactoryInterface
{
/**
* Create service
*
* @param ServiceLocatorInterface $serviceLocator
* @return mixed
*/
public function createService(ServiceLocatorInterface $serviceLocator)
if ($serviceLocator instanceof AbstractPluginManager) {
$serviceLocator = $serviceLocator->getServiceLocator();
}
$config = $serviceLocator->get('Config');
$migrationConfig = $config['migrations'];
$adapterName = isset($migrationConfig['adapter']) ? $migrationConfig['adapter'] : 'Zend\Db\Adapter\Adapter';
/** @var $adapter \Zend\Db\Adapter\Adapter */
$adapter = $serviceLocator->get($adapterName);
$resultSetPrototype = new ResultSet();
$resultSetPrototype->setArrayObjectPrototype(new Version());
new \T4web\Migrations\Version\Version()
object<T4web\Migrations\Version\Version>
object<ArrayObject>
It seems like the type of the argument is not accepted by the function/method which you are calling.
In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.
We suggest to add an explicit type cast like in the following example:
function acceptsInteger($int) { } $x = '123'; // string "123" // Instead of acceptsInteger($x); // we recommend to use acceptsInteger((integer) $x);
return new TableGateway(Version::TABLE_NAME, $adapter, null, $resultSetPrototype);
It seems like the type of the argument is not accepted by the function/method which you are calling.
In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.
We suggest to add an explicit type cast like in the following example: