Compare commits

..
10 Commits
Author SHA1 Message Date
ahwelp dbc5e5bed2 Updating composer.json 2023-02-07 13:27:59 +00:00
ahwelp edf7974a4f Changing prefixing substitution method 2023-01-24 13:49:42 +00:00
ahwelp 84a76017d7 Fixing identation 2023-01-24 13:49:06 +00:00
ahwelp 235c58d1a9 Update 'README.md' 2020-06-14 04:11:32 +00:00
ahwelp 8b45dd556a Update 'src/Schema/Wrapper.php' 2020-04-16 02:06:16 +00:00
ahwelp 5632f15107 Update 'src/Schema/Wrapper.php' 2020-04-15 23:17:15 +00:00
ahwelp 1e9aeb6266 Atualizar 'README.md' 2019-08-21 00:56:53 +00:00
ahwelp ad50a598af Update 'src/Schema/Db/Table.php' 2019-07-31 23:11:52 +00:00
ahwelp 8138187667 Update 'src/Schema/Wrapper.php' 2019-04-30 07:39:09 +00:00
Artur Welp d1da3f781a Rudimentary support for table prefixing #1 2019-04-25 05:39:19 -03:00
7 changed files with 132 additions and 64 deletions
Regular → Executable
View File
+39
View File
@@ -1,3 +1,5 @@
https://book.cakephp.org/3.0/en/phinx/migrations.html#working-with-columns
```php
<?php
@@ -20,3 +22,40 @@ $table->removeColumn('idb');
$table->save();
Wrapper::commit();
```
```
//Data Types
biginteger
binary
boolean
char
date
datetime
decimal
float
integer
smallinteger
string
text
time
timestamp
uuid
//Mysql-------------------
enum
set
blob
bit
json
//PostgreSql-------------
interval
json
jsonb
uuid
cidr
inet
macaddr
```
Regular → Executable
+1 -1
View File
@@ -1,5 +1,5 @@
{
"name": "urfat/schema",
"name": "inforsistemas/schema",
"description": "From Phinx, just the DDL",
"type": "library",
"authors": [
+17 -9
View File
@@ -52,7 +52,7 @@ class AdapterFactory
public static function instance()
{
if (!static::$instance) {
static::$instance = new static();
static::$instance = new static ();
}
return static::$instance;
}
@@ -90,10 +90,12 @@ class AdapterFactory
public function registerAdapter($name, $class)
{
if (!is_subclass_of($class, 'Phinx\Db\Adapter\AdapterInterface')) {
throw new \RuntimeException(sprintf(
throw new \RuntimeException(
sprintf(
'Adapter class "%s" must implement Phinx\\Db\\Adapter\\AdapterInterface',
$class
));
)
);
}
$this->adapters[$name] = $class;
return $this;
@@ -109,10 +111,12 @@ class AdapterFactory
protected function getClass($name)
{
if (empty($this->adapters[$name])) {
throw new \RuntimeException(sprintf(
throw new \RuntimeException(
sprintf(
'Adapter "%s" has not been registered',
$name
));
)
);
}
return $this->adapters[$name];
}
@@ -141,10 +145,12 @@ class AdapterFactory
public function registerWrapper($name, $class)
{
if (!is_subclass_of($class, 'Phinx\Db\Adapter\WrapperInterface')) {
throw new \RuntimeException(sprintf(
throw new \RuntimeException(
sprintf(
'Wrapper class "%s" must be implement Phinx\\Db\\Adapter\\WrapperInterface',
$class
));
)
);
}
$this->wrappers[$name] = $class;
return $this;
@@ -160,10 +166,12 @@ class AdapterFactory
protected function getWrapperClass($name)
{
if (empty($this->wrappers[$name])) {
throw new \RuntimeException(sprintf(
throw new \RuntimeException(
sprintf(
'Wrapper "%s" has not been registered',
$name
));
)
);
}
return $this->wrappers[$name];
}
+19 -10
View File
@@ -1,4 +1,5 @@
<?php
/**
* Phinx
*
@@ -26,6 +27,7 @@
* @package Phinx
* @subpackage Phinx\Db
*/
namespace Schema\Db;
use Schema\Db\Table\Column;
@@ -39,6 +41,7 @@ use Schema\Db\Adapter\AdapterInterface;
*/
class Table
{
/**
* @var string
*/
@@ -87,7 +90,6 @@ class Table
$this->setOptions($options);
if (null !== $adapter) {
//echo 'Adapter definido';
$this->setAdapter($adapter);
}
}
@@ -349,11 +351,13 @@ class Table
// Delegate to Adapters to check column type
if (!$this->getAdapter()->isValidColumnType($column)) {
throw new \InvalidArgumentException(sprintf(
throw new \InvalidArgumentException(
sprintf(
'An invalid column type "%s" was specified for column "%s".',
$column->getType(),
$column->getName()
));
)
);
}
$this->columns[] = $column;
@@ -568,11 +572,12 @@ class Table
$this->addColumn($createdAtColumnName, 'timestamp', array(
'default' => 'CURRENT_TIMESTAMP',
'update' => ''
))
)
)
->addColumn($updatedAtColumnName, 'timestamp', array(
'null' => true,
'default' => null
));
'default' => 'CURRENT_TIMESTAMP',
)
);
return $this;
}
@@ -584,16 +589,17 @@ class Table
*
* @return Table
*/
public function addSoftDelete($deletedAtColumnName = 'deleted_at'){
public function addSoftDelete($deletedAtColumnName = 'deleted_at')
{
$deletedAtColumnName = is_null($deletedAtColumnName) ? 'deleted_at' : $deletedAtColumnName;
$this->addColumn($deletedAtColumnName, 'timestamp', array(
'default' => null,
'null' => true,
));
)
);
return $this;
}
/**
* Insert data into the table.
*
@@ -626,10 +632,12 @@ class Table
*/
public function create()
{
if (!$this->getAdapter()->hasTable($this->name)) {
$this->getAdapter()->createTable($this);
$this->saveData();
$this->reset(); // reset pending changes
}
}
/**
* Updates a table from the object instance.
@@ -689,4 +697,5 @@ class Table
$this->reset(); // reset pending changes
}
}
+22 -10
View File
@@ -9,7 +9,8 @@ use Schema\Db\Adapter\MysqlAdapter;
use Schema\Db\Adapter\SQLiteAdapter;
use Schema\Db\Adapter\SqlServerAdapter;
class Wrapper{
class Wrapper
{
private static $_instance;
@@ -19,14 +20,16 @@ class Wrapper{
function __construct(){ }
//SINGLETON==============================================
private static function newObj(){
private static function newObj()
{
if (!isset(self::$_instance)) {
self::$_instance = new Wrapper();
}
return self::$_instance;
}
public static function getInstance(){
public static function getInstance()
{
if (!isset(self::$_instance)) {
return self::newObj();
}
@@ -34,7 +37,8 @@ class Wrapper{
}
//=======================================================
public static function set_driver(\PDO $driver){
public static function set_driver(\PDO $driver)
{
$instance = self::getInstance();
$instance->_driver = $driver;
@@ -55,28 +59,36 @@ class Wrapper{
}
}
public static function get_table($name){
public static function get_table($name)
{
$instance = self::getInstance();
echo $instance->_adapter->getConnection()->prefix;
if( $instance->_adapter->getConnection()->prefix ){
$name = $instance->_adapter->getConnection()->prefix . $name;
}
return new Table($name, Array(), $instance->_adapter);
}
public static function begin(){
public static function begin()
{
$instance = self::getInstance();
$instance->_adapter->beginTransaction();
}
public static function commit(){
public static function commit()
{
$instance = self::getInstance();
$instance->_adapter->commitTransaction();
}
public static function exec($sql){
public static function exec($sql)
{
$instance = self::getInstance();
$sql = preg_replace('/{(.*)}/', "$con->prefix$1", $sql);
$prefix = $instance->_adapter->getConnection()->prefix;
$sql = preg_replace_callback('/{.*?}/', function($match) use ($prefix){
return str_replace('}', '', str_replace('{', $prefix, $match[0]));
} , $sql);
$instance->_driver->exec($sql);
}
Regular → Executable
View File