cristiannores/suite-ctrm-generator

此包的最新版本(v1.0)没有提供许可证信息。

Zend生成器!


README

zf3的映射器和类的代码生成器

此工具可从数据库元数据生成类和映射器。

示例

如何生成

修改 core/Database.php

if (!$driver) {
  $this->adapter = new Zend\Db\Adapter\Adapter([
    'driver' => 'Pdo',
    'dsn'    => 'mysql:dbname=test;host=localhost;charset=utf8',
    'username' => 'root',
    'password' => '', 
    'options' => array(
    'buffer_results' => true,
  )]);
}            

修改 core/config.php

$GLOBALS['suite_crm_path'] = '/var/www/suite/public_html';       

运行代码生成器

php generate.php

运行方法

运行生成器的步骤

php generate.php run 

选项 --table -t

添加要生成的表名

php generate.php run --table my_table_name 

选项 --override

覆盖现有的映射器

php generate.php run --table my_table_name  --override

选项 --all

生成数据库中的所有映射器和类

php generate.php run --all

如何使用映射器

直接调用映射器

可以直接调用映射器..如果未指定适配器,将生成不同的连接

$mapperContacts = new ContactsMapper();

// Guardando contactos
$mapperContacts->store($data);

// Obteniendo contacto por id
$mapperContacts->get($id);

// Actualizando contacto por id
$mapperContacts->update($contact, $id);

 // Encontrando un contacto por parametros
$mapperContacts->findOneBy($find);

// Encontrando  muchos contactos por parametro
$mapperContacts->findManyBy($data);

// Borrando un contacto 
$mapperContacts->delete($id);

// Obteniendo todos los contactos un contacto 
$mapperContacts->getAll();

使用事务进行多次调用

必须为所有映射器添加适配器,该适配器实例化一个连接

// Get adapter
$database = new Database();
$adapter = $database->getAdapter();        

try {

    // Iniciando transaccion
    $adapter->getDriver()->getConnection()->beginTransaction();

    $mapperContacts = new ContactsMapper($adapter);
    $mapperEmailAddresses = new EmailAddressesMapper($adapter);

    $contact_id = $mapperContacts->store($contacto);
    $email_id = $mapperEmailAddresses->store($email);

    if ($contact_id && $email_id) {
        $asignado = $mapperEmailAddresses->assignToContact($contact_id, $email_id);

        if ($asignado) {

            // Commit
            $adapter->getDriver()->getConnection()->commit();

        } else {

            // rollback
            $adapter->getDriver()->getConnection()->rollback();
        }
    } else {

        // rollback
        $adapter->getDriver()->getConnection()->rollback();

    }        

} catch (Exception $exc) {

    // rollback
    $adapter->getDriver()->getConnection()->rollback();

} catch (\Zend\Db\Adapter\Exception\ErrorException $ex) {

    // rollback
    $adapter->getDriver()->getConnection()->rollback();

} catch (Zend\Db\Adapter\Exception\RuntimeException $ex) {

    // rollback
    $adapter->getDriver()->getConnection()->rollback();           

}

这就完了!!谢谢...

版本

版本 1.0

作者

也可以查看参与此项目的贡献者列表

许可证

本项目采用MIT许可证 - 详细信息请参阅LICENSE.md文件。