Compare commits
3 Commits
1.1
...
795784f02e
Author | SHA1 | Date | |
---|---|---|---|
795784f02e | |||
b1e74f9652 | |||
bcd73d58f9 |
@ -637,10 +637,29 @@ class Database {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function search( $table, $column, $param ) {
|
public function searchColumn( $table, $column, $param ) {
|
||||||
return $this->action( 'SELECT *', $table, [$column, 'LIKE', '%' . $param . '%'] );
|
return $this->action( 'SELECT *', $table, [$column, 'LIKE', '%' . $param . '%'] );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function search( $table, $columns, $param ) {
|
||||||
|
if ( empty( $columns ) || ! is_array( $columns ) ) {
|
||||||
|
Debug::log( 'No columns provided for search' );
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
$conditions = [];
|
||||||
|
foreach ( $columns as $column ) {
|
||||||
|
$conditions[] = $column;
|
||||||
|
$conditions[] = 'LIKE';
|
||||||
|
$conditions[] = '%' . $param . '%';
|
||||||
|
$conditions[] = 'OR';
|
||||||
|
}
|
||||||
|
array_pop( $conditions );
|
||||||
|
|
||||||
|
return $this->action( 'SELECT *', $table, $conditions );
|
||||||
|
// return $this->action( 'SELECT ' . implode( ',', $columns ), $table, $conditions ); // need to find a way to casually make this the default....
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Selects data from the database.
|
* Selects data from the database.
|
||||||
*
|
*
|
||||||
|
@ -17,8 +17,9 @@ use TheTempusProject\Bedrock\Functions\Check;
|
|||||||
use TheTempusProject\Bedrock\Bedrock;
|
use TheTempusProject\Bedrock\Bedrock;
|
||||||
|
|
||||||
class DatabaseModel extends Model {
|
class DatabaseModel extends Model {
|
||||||
public $databaseMatrix;
|
|
||||||
public $tableName;
|
public $tableName;
|
||||||
|
public $databaseMatrix;
|
||||||
|
public $searchFields;
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
@ -190,4 +191,19 @@ class DatabaseModel extends Model {
|
|||||||
}
|
}
|
||||||
return $this->filter( $data->results() );
|
return $this->filter( $data->results() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function search($param) {
|
||||||
|
if (empty($this->searchFields)) {
|
||||||
|
Debug::log('searchFields is empty');
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = self::$db->search($this->tableName, $this->searchFields, $param);
|
||||||
|
|
||||||
|
if ( $result->count() ) {
|
||||||
|
return $this->filter( $result->results() );
|
||||||
|
}
|
||||||
|
|
||||||
|
return [];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
43
README.md
43
README.md
@ -1,31 +1,52 @@
|
|||||||
# Tempus Project Core
|
|
||||||
###### Developer(s): Joey Kimsey
|
|
||||||
|
|
||||||
Bedrock is the core functionality used by [The Tempus Project](https://github.com/TheTempusProject/TheTempusProject) a rapid prototyping framework. This Library can be utilized outside of the TempusProject, but the functionality has not been tested well as a stand alone library.
|
# Bedrock
|
||||||
|
|
||||||
|
## Developer(s): Joey Kimsey
|
||||||
|
|
||||||
This library utilizes the MVC architecture in addition to a custom templating engine designed to make building web applications fast and simple.
|
This library utilizes the MVC architecture in addition to a custom templating engine designed to make building web applications fast and simple.
|
||||||
|
|
||||||
|
Bedrock is the core functionality used by [The Tempus Project](https://github.com/TheTempusProject/TheTempusProject) a rapid prototyping framework. It provides database support, configuration, base models, and base controller functionality a in addition to a host of other integrated functions.
|
||||||
|
|
||||||
|
This Library can be utilized outside of TheTempusProject, but the functionality has not been tested well as a stand-alone library.
|
||||||
|
|
||||||
**Notice: This Library is provided as is, please use at your own risk.**
|
**Notice: This Library is provided as is, please use at your own risk.**
|
||||||
|
|
||||||
## Installation and Use
|
## Installation and Use
|
||||||
The easiest way to use Bedrock in your application is to install and initialize it via composer.
|
|
||||||
|
|
||||||
```
|
The easiest way to use Bedrock in your application is to install it via composer and extend the main app inside of the bin folder.
|
||||||
|
|
||||||
|
`Composer.json`
|
||||||
|
|
||||||
|
```json
|
||||||
"require": {
|
"require": {
|
||||||
"TheTempusProject/Bedrock": "*",
|
"TheTempusProject/Bedrock": "*",
|
||||||
},
|
},
|
||||||
|
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"Bedrock\": "vendor/TheTempusProject/Bedrock"
|
"TheTempusProject\\Bedrock\\": "vendor/thetempusproject/bedrock",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
If you prefer to handle auto-loading via other means, you can simply clone this repository wherever you need it. Please note, you will need to install and load the [TempusDebugger](https://github.com/thetempusproject/TempusDebugger) library in order to utilize the debug to console options.
|
`app.php`
|
||||||
|
|
||||||
|
```php
|
||||||
|
<?php
|
||||||
|
namespace MyApp;
|
||||||
|
|
||||||
|
use TheTempusProject\Bedrock\Bin\Bedrock;
|
||||||
|
|
||||||
|
class MyApp extends Bedrock {
|
||||||
|
// Stuff and Things
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
```
|
||||||
|
|
||||||
|
If you prefer to handle auto-loading via other means, you can simply clone this repository wherever you need it.
|
||||||
|
|
||||||
|
### To-Do
|
||||||
|
|
||||||
### WIP:
|
|
||||||
- [ ] Expansion of PDO to allow different database types
|
- [ ] Expansion of PDO to allow different database types
|
||||||
- [ ] template stuff should really only be called from template/controllers
|
- [ ] Updates for configs and models to re-build based on a delta model, to make version changes simpler. (Migration system)
|
||||||
- [ ] Update installer to account for updates.
|
- [ ] Implement better uniformity in terms of error reporting, exceptions, logging.
|
||||||
- [ ] Implement uniformity in terms of error reporting, exceptions, logging.
|
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
"php": ">=8.1.0",
|
"php": ">=8.1.0",
|
||||||
"thetempusproject/canary": "1.0.6",
|
"thetempusproject/canary": "1.0.6",
|
||||||
"thetempusproject/hermes": "1.0.3",
|
"thetempusproject/hermes": "1.0.3",
|
||||||
"thetempusproject/houdini": "2.0.1"
|
"thetempusproject/houdini": "2.0.2"
|
||||||
},
|
},
|
||||||
"autoload":
|
"autoload":
|
||||||
{
|
{
|
||||||
|
8
composer.lock
generated
8
composer.lock
generated
@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "97195cc6dbe0b460b98f4757ecf1adc1",
|
"content-hash": "6621b1244b732ba3424ec89affa7161e",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "thetempusproject/canary",
|
"name": "thetempusproject/canary",
|
||||||
@ -94,11 +94,11 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "thetempusproject/houdini",
|
"name": "thetempusproject/houdini",
|
||||||
"version": "2.0.1",
|
"version": "2.0.2",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.thetempusproject.com/the-tempus-project/houdini",
|
"url": "https://git.thetempusproject.com/the-tempus-project/houdini",
|
||||||
"reference": "b03fc3b7ddcdd0213f8f927a9bf1c0c68c62138f"
|
"reference": "fb027a4ebc327e709ad3da29a4cf112894c2b7e6"
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=8.1.0",
|
"php": ">=8.1.0",
|
||||||
@ -134,7 +134,7 @@
|
|||||||
"thetempusproject",
|
"thetempusproject",
|
||||||
"tools"
|
"tools"
|
||||||
],
|
],
|
||||||
"time": "2025-01-22T01:59:01+00:00"
|
"time": "2025-01-27T05:02:14+00:00"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"packages-dev": [],
|
"packages-dev": [],
|
||||||
|
Reference in New Issue
Block a user