Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
pquery
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Taddeüs Kroes
pquery
Commits
06bcb1db
Commit
06bcb1db
authored
Oct 27, 2011
by
Taddes Kroes
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added basis of Array and SQl plugin.
parent
cf28fc5f
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
255 additions
and
1 deletion
+255
-1
.gitignore
.gitignore
+0
-1
array.php
array.php
+38
-0
base.php
base.php
+190
-0
sql.php
sql.php
+27
-0
No files found.
.gitignore
View file @
06bcb1db
docs
docs
index.php
index.php
sql.php
array.php
0 → 100644
View file @
06bcb1db
<?php
/**
* @todo Documentation
*/
class
pQueryArray
extends
pQuery
{
function
get
(
$index
)
{
return
isset
(
$this
->
variable
[
$index
])
?
$this
->
variable
[
$index
]
:
null
;
}
function
count
()
{
return
count
(
$this
->
variable
);
}
function
is_empty
()
{
return
!
$this
->
count
();
}
function
reverse
()
{
$this
->
variable
=
array_reverse
(
$this
->
variable
);
return
$this
;
}
function
__call
(
$method
,
$args
)
{
$function
=
'array_'
.
$method
;
if
(
function_exists
(
$function
)
)
{
array_unshift
(
$args
,
&
$this
->
variable
);
return
call_user_func_array
(
$function
,
$args
);
}
return
self
::
error
(
'Plugin "%s" has no method "%s".'
,
__CLASS__
,
$method
);
}
}
?>
\ No newline at end of file
pquery
.php
→
base
.php
View file @
06bcb1db
<?php
<?php
/**
/**
* Base for pQuery
package
.
* Base for pQuery
PHP utility framework
.
*
*
* @package pQuery
* @package pQuery
*/
*/
namespace
pQuery
;
/**
/**
*
Shortcut constructor for {@link pQuery}
.
*
Indicates whether the framework is in debug mode
.
*
*
* @
returns pQuery A new pQuery instance.
* @
var bool
*/
*/
function
_
()
{
defined
(
'DEBUG'
)
||
define
(
'DEBUG'
,
true
);
$args
=
func_get_args
();
return
call_user_func_array
(
'pQuery::__construct'
,
$args
);
}
/**
/**
*
Indicates whether the framework is in debug mode
.
*
The root location of the pQuery framework folder
.
*
*
* @var
bool
* @var
string
*/
*/
define
d
(
'DEBUG'
)
||
define
(
'DEBUG'
,
true
);
define
(
'PQUERY_ROOT'
,
'D:/xampp/htdocs/pquery/'
);
/**
/**
* Common utility class.
* Common utility class.
*/
*/
class
pQuery
{
class
pQuery
{
/**
/**
* @see pQueryExtension::REQUIRED_PHP_VERSION
* The minimum php version required to use the framework.
*
* @var string
*/
*/
const
REQUIRED_PHP_VERSION
=
'5.3'
;
static
$
REQUIRED_PHP_VERSION
=
'5.3'
;
/**
/**
* A list of all plugins currently included.
* A list of all plugins currently included.
...
@@ -41,6 +37,14 @@ class pQuery {
...
@@ -41,6 +37,14 @@ class pQuery {
*/
*/
static
$plugins
=
array
();
static
$plugins
=
array
();
/**
* The variable types accepted by the parser.
*
* @var array
* @see set_variable()
*/
static
$accepts
=
array
(
'boolean'
,
'integer'
,
'double'
,
'string'
,
'array'
,
'object'
,
'NULL'
);
/**
/**
* The current variable.
* The current variable.
*
*
...
@@ -51,20 +55,27 @@ class pQuery {
...
@@ -51,20 +55,27 @@ class pQuery {
/**
/**
* Extend pQuery with a plugin.
* Extend pQuery with a plugin.
*
*
* @param mixed $variable The variable to parse.
* @param string $class_name The name of the plugin's base class.
* @param string $alias The alias to save for the plugin (defaults to $class_name).
* @see $plugins
* @see $plugins
*/
*/
static
function
extend
(
$class_name
,
$alias
=
null
)
{
static
function
extend
(
$class_name
,
$alias
=
null
)
{
// Assert plugin existance
if
(
!
class_exists
(
$class_name
)
)
if
(
!
class_exists
(
$class_name
)
)
return
self
::
error
(
'
Class
"%s" does not exist.'
,
$class_name
);
return
self
::
error
(
'
Plugin
"%s" does not exist.'
,
$class_name
);
if
(
!
(
$class_name
instanceof
pQueryExtension
)
)
// Assert that the plugin extend the base clas properly
return
self
::
error
(
'Class "%s" does not implement pQueryExtension.'
,
$class_name
);
if
(
!
in_array
(
'pQueryExtension'
,
class_implements
(
$class_name
))
)
return
self
::
error
(
'Plugin "%s" does not implement pQueryExtension.'
,
$class_name
);
if
(
$class_name
)
// Assert that the required PHP version is installed
return
self
::
error
(
'Class "%s" does not implement pQueryExtension.'
,
$class_name
);
if
(
isset
(
$class_name
::
$REQUIRED_PHP_VERSION
)
&&
version_compare
(
PHP_VERSION
,
$class_name
::
$REQUIRED_PHP_VERSION
,
'<'
)
)
{
return
self
::
error
(
'Plugin "%s" requires PHP version %s.'
,
$class_name
,
$class_name
::
$REQUIRED_PHP_VERSION
);
}
self
::
$plugins
[
$alias
===
null
?
$class_name
:
$alias
]
=
$class_name
;
self
::
$plugins
[
$alias
===
null
?
$class_name
:
$alias
]
=
$class_name
;
}
}
/**
/**
...
@@ -79,7 +90,7 @@ class pQuery {
...
@@ -79,7 +90,7 @@ class pQuery {
if
(
DEBUG
)
{
if
(
DEBUG
)
{
call_user_func_array
(
'printf'
,
$args
);
call_user_func_array
(
'printf'
,
$args
);
echo
debug_backtrace
();
//
echo debug_backtrace();
}
}
}
}
...
@@ -87,32 +98,53 @@ class pQuery {
...
@@ -87,32 +98,53 @@ class pQuery {
* Constructor.
* Constructor.
*
*
* @param mixed $variable The variable to use an utility on.
* @param mixed $variable The variable to use an utility on.
* @param string $plugin The name of an utility plugin to use (optional).
*/
*/
function
__construct
(
$variable
,
$plugin
=
null
)
{
function
__construct
(
$variable
)
{
if
(
$plugin
!==
null
)
{
$this
->
set_variable
(
$variable
);
if
(
isset
(
$plugins
[
$plugin
])
)
{
}
$class_name
=
$plugins
[
$plugin
];
return
new
$class_name
(
$variable
);
/**
}
else
if
(
DEBUG
)
{
* Parse the type of the given variable, and convert it if needed.
self
::
error
(
'Plugin "%s" does not exist.'
,
$plugin
);
*
* @param mixed $variable The variable to parse.
* @param bool $force Whether not to check the variables type against the accepted types.
*/
function
set_variable
(
$variable
,
$force
=
false
)
{
if
(
!
$force
)
{
$type
=
gettype
(
$variable
);
$class_name
=
get_class
(
$this
);
$accepts
=
$class_name
::
$accepts
;
if
(
isset
(
$accepts
[
$type
])
)
{
$convert_method
=
$accepts
[
$type
];
if
(
!
method_exists
(
$this
,
$convert_method
)
)
return
self
::
error
(
'Plugin "%s" has no conversion method "%s".'
,
$class_name
,
$convert_method
);
$result
=
$this
->
$convert_method
(
$variable
);
$result
===
null
||
$variable
=
$result
;
}
else
if
(
!
in_array
(
$type
,
$accepts
)
)
{
return
self
::
error
(
'Variable type "%s" is not accepted by class "%s".'
,
$type
,
$class_name
);
}
}
}
}
$this
->
parse_variable
(
$variable
)
;
$this
->
variable
=
$variable
;
}
}
/**
/**
*
Parse the type of the given variable, and convert it if needed
.
*
Load the file containing the utility class for a specific variable type
.
*
*
* @param mixed $variable The variable to parse.
* @param mixed $typoe the variable type of the class to load.
* @todo Type and conversion
*/
*/
function
parse_variable
(
$variable
)
{
static
function
load_type_class
(
$type
)
{
$file
=
PQUERY_ROOT
.
$type
.
'.php'
;
if
(
!
file_exists
(
$file
)
)
return
false
;
$this
->
variable
=
$variable
;
include_once
$file
;
return
true
;
}
}
}
}
...
@@ -121,18 +153,38 @@ class pQuery {
...
@@ -121,18 +153,38 @@ class pQuery {
*/
*/
interface
pQueryExtension
{
interface
pQueryExtension
{
/**
/**
*
The minimum php version required to use the package
.
*
Constructor
.
*
*
* @
var string
* @
param mixed $variable The variable to use an utility on.
*/
*/
const
REQUIRED_PHP_VERSION
;
function
__construct
(
$variable
);
}
/**
/**
* Constructor
.
* Shortcut constructor for {@link pQuery}
.
*
*
* @param mixed $variable The variable to use an utility on.
* @param mixed $variable The variable to use an utility on.
* @param string $plugin The name of an utility plugin to use (optional).
* @returns pQuery A new pQuery (or descendant) instance.
*/
*/
function
__construct
(
$variable
);
function
_p
(
$variable
,
$plugin
=
null
)
{
$class_name
=
'pQuery'
;
if
(
$plugin
===
null
)
{
// Use custom class for this variable type
$type
=
gettype
(
$variable
);
if
(
pQuery
::
load_type_class
(
$type
)
)
$class_name
.=
ucfirst
(
$type
);
}
else
{
// Use custom plugin class
if
(
isset
(
pQuery
::
$plugins
[
$plugin
])
)
$class_name
=
pQuery
::
$plugins
[
$plugin
];
else
if
(
DEBUG
)
pQuery
::
error
(
'Plugin "%s" does not exist.'
,
$plugin
);
}
return
new
$class_name
(
$variable
);
}
}
?>
?>
\ No newline at end of file
sql.php
0 → 100644
View file @
06bcb1db
<?php
/**
* @todo Documentation
*/
class
pQuerySql
extends
pQuery
implements
pQueryExtension
{
static
$accepts
=
array
(
'string'
=>
'parse_query'
,
'resource'
);
function
parse_query
(
$query
)
{
$this
->
query
=
$query
;
}
}
/**
* Shortcut constructor for {@link pQuerySql}.
*
* @returns pQuerySql A new pQuerySql instance.
* @see pQuerySql::__construct
*/
function
_s
(
$query
)
{
return
_p
(
$query
,
'sql'
);
}
pQuerySql
::
extend
(
'pQuerySql'
,
'sql'
);
debug
(
pQuery
::
$plugins
);
?>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment