diff --git a/doc.html b/doc.html
new file mode 100644
index 0000000..03cfe30
Binary files /dev/null and b/doc.html differ
diff --git a/manual/includes/_upload-file.md b/manual/includes/_upload-file.md
index ed2b570..23c376b 100644
--- a/manual/includes/_upload-file.md
+++ b/manual/includes/_upload-file.md
@@ -54,6 +54,8 @@ $files = new PicoUploadFile();
$file1 = $files->get('myupload');
// or alternatively
// $file1 = $files->myupload;
+// or
+// $file1 = $files->getMyupload();
$targetDir = __DIR__;
diff --git a/manual/index.html b/manual/index.html
index 64bc5ba..3c4f071 100644
--- a/manual/index.html
+++ b/manual/index.html
@@ -10850,6 +10850,8 @@
PHP Backend Handling
$file1 = $files->get('myupload');
// or alternatively
// $file1 = $files->myupload;
+// or
+// $file1 = $files->getMyupload();
$targetDir = __DIR__;
diff --git a/src/Database/PicoDatabasePersistence.php b/src/Database/PicoDatabasePersistence.php
index 929be1d..e695ed8 100644
--- a/src/Database/PicoDatabasePersistence.php
+++ b/src/Database/PicoDatabasePersistence.php
@@ -4,9 +4,6 @@
use DateTime;
use Exception;
use MagicObject\Exceptions\ClassNotFoundException;
-use PDO;
-use PDOException;
-use PDOStatement;
use MagicObject\Exceptions\EmptyResultException;
use MagicObject\Exceptions\EntityException;
use MagicObject\Exceptions\InvalidAnnotationException;
@@ -22,6 +19,9 @@
use MagicObject\Util\ClassUtil\PicoAnnotationParser;
use MagicObject\Util\ClassUtil\PicoEmptyParameter;
use MagicObject\Util\Database\PicoDatabaseUtil;
+use PDO;
+use PDOException;
+use PDOStatement;
use ReflectionProperty;
/**
@@ -78,6 +78,8 @@ class PicoDatabasePersistence // NOSONAR
const COMMA = ", ";
const COMMA_RETURN = ", \r\n";
+ const INLINE_TRIM = " \r\n\t ";
+ const ALWAYS_TRUE = "(1=1)";
/**
* Database connection
@@ -355,7 +357,7 @@ private function addColumnType($columns, $reflexProp, $prop, $parameters)
{
if(strcasecmp($param, self::ANNOTATION_VAR) == 0 && isset($columns[$prop->name]))
{
- $type = explode(' ', trim($val, " \r\n\t "))[0];
+ $type = explode(' ', trim($val, self::INLINE_TRIM))[0];
$columns[$prop->name][self::KEY_PROPERTY_TYPE] = $type;
}
if(strcasecmp($param, self::SQL_DATE_TIME_FORMAT) == 0)
@@ -409,7 +411,7 @@ private function addJoinColumnType($joinColumns, $prop, $parameters)
{
if(strcasecmp($param, self::ANNOTATION_VAR) == 0 && isset($joinColumns[$prop->name]))
{
- $type = explode(' ', trim($val, " \r\n\t "))[0];
+ $type = explode(' ', trim($val, self::INLINE_TRIM))[0];
$joinColumns[$prop->name][self::KEY_PROPERTY_TYPE] = $type;
$joinColumns[$prop->name][self::KEY_ENTITY_OBJECT] = true;
}
@@ -563,36 +565,28 @@ public function getTableInfo()
$parameters = $reflexProp->getParameters();
// get column name of each parameters
- $columns = $this->addColumnName($columns, $reflexProp, $prop, $parameters);
-
+ $columns = $this->addColumnName($columns, $reflexProp, $prop, $parameters);
// set column type
- $columns = $this->addColumnType($columns, $reflexProp, $prop, $parameters);
-
+ $columns = $this->addColumnType($columns, $reflexProp, $prop, $parameters);
// get join column name of each parameters
- $joinColumns = $this->addJoinColumnName($joinColumns, $reflexProp, $prop, $parameters);
-
+ $joinColumns = $this->addJoinColumnName($joinColumns, $reflexProp, $prop, $parameters);
// set join column type
- $joinColumns = $this->addJoinColumnType($joinColumns, $prop, $parameters);
-
+ $joinColumns = $this->addJoinColumnType($joinColumns, $prop, $parameters);
// list primary key
- $primaryKeys = $this->addPrimaryKey($primaryKeys, $columns, $prop, $parameters);
-
+ $primaryKeys = $this->addPrimaryKey($primaryKeys, $columns, $prop, $parameters);
// list autogenerated column
- $autoIncrementKeys = $this->addAutogenerated($autoIncrementKeys, $columns, $reflexClass, $prop, $parameters);
-
+ $autoIncrementKeys = $this->addAutogenerated($autoIncrementKeys, $columns, $reflexClass, $prop, $parameters);
// define default column value
- $defaultValue = $this->addDefaultValue($defaultValue, $columns, $reflexClass, $prop, $parameters);
-
+ $defaultValue = $this->addDefaultValue($defaultValue, $columns, $reflexClass, $prop, $parameters);
// list not null column
- $notNullColumns = $this->addNotNull($notNullColumns, $columns, $prop, $parameters);
-
+ $notNullColumns = $this->addNotNull($notNullColumns, $columns, $prop, $parameters);
}
// bring it together
$this->tableInfoProp = new PicoTableInfo($picoTableName, $columns, $joinColumns, $primaryKeys, $autoIncrementKeys, $defaultValue, $notNullColumns, $noCache, $package);
@@ -1501,7 +1495,7 @@ protected function createWhereFromSpecification($sqlQuery, $specification, $info
{
$masterColumnMaps = $this->getColumnMap($info);
$arr = array();
- $arr[] = "(1=1)";
+ $arr[] = self::ALWAYS_TRUE;
if($specification != null && !$specification->isEmpty())
{
$specifications = $specification->getSpecifications();
@@ -1511,7 +1505,7 @@ protected function createWhereFromSpecification($sqlQuery, $specification, $info
}
}
$ret = $this->joinStringArray($arr, self::MAX_LINE_LENGTH);
- return $this->trimWhere($ret);
+ return PicoDatabaseUtil::trimWhere($ret);
}
/**
@@ -1688,17 +1682,6 @@ private function formatColumn($column, $format)
}
return sprintf($format, $column);
}
-
- /**
- * Trim unnecessary parts from WHERE clause
- *
- * @param string $where WHERE clause string
- * @return string Trimmed WHERE clause
- */
- private function trimWhere($where)
- {
- return PicoDatabaseUtil::trimWhere($where);
- }
/**
* Create ORDER BY clause
diff --git a/src/Util/Database/PicoDatabaseUtil.php b/src/Util/Database/PicoDatabaseUtil.php
index 6fc92df..b8a8209 100644
--- a/src/Util/Database/PicoDatabaseUtil.php
+++ b/src/Util/Database/PicoDatabaseUtil.php
@@ -297,7 +297,7 @@ public static function escapeSQL($value)
return addslashes($value);
}
- /**
+ /**
* Trim a WHERE clause by removing unnecessary characters.
*
* This method cleans up a raw WHERE clause by trimming whitespace
diff --git a/tutorial.md b/tutorial.md
index ae12ad7..0a75b0e 100644
--- a/tutorial.md
+++ b/tutorial.md
@@ -12305,6 +12305,8 @@ $files = new PicoUploadFile();
$file1 = $files->get('myupload');
// or alternatively
// $file1 = $files->myupload;
+// or
+// $file1 = $files->getMyupload();
$targetDir = __DIR__;