PHPCrud is a CRUD System designed to extend PHPWine functionality crud features.
// Download Plugin latest version
$ git clone https://github.com/nielsofficeofficial/PHPCrud
// Download specified version ( --branch tag ) --branch v1.3.1.0
$ git clone https://github.com/nielsofficeofficial/PHPCrud --branch v1.3.1.0
| - root folder
| - vendor // generated by composer/Pkgist
| - PHPWine
| - Plugins
|- PHPCrud
| - Wine
| - src
| - PHPWine.php
| - prop.php
| - LICENSE
| - README.md
| - composer.json
# Namespace / Dependency
use \PHPWineVanillaFlavour\Plugins\PHPCrud\Crud\Vanilla;
// Installing functions Vanilla since v1.3
new \PHPWineVanillaFlavour\Plugins\PHPCrud\Crud\Wine\VanillaApiWine;
new \PHPWineVanillaFlavour\Plugins\PHPCrud\Crud\Wine\VanillaWine;
new \PHPWineVanillaFlavour\Plugins\PHPCrud\Crud\Wine\VanillaCreate;
new \PHPWineVanillaFlavour\Plugins\PHPCrud\Crud\Wine\VanillaFetch;
new \PHPWineVanillaFlavour\Plugins\PHPCrud\Crud\Wine\VanillaUpdate;
new \PHPWineVanillaFlavour\Plugins\PHPCrud\Crud\Wine\VanillaDelete;
new \PHPWineVanillaFlavour\Plugins\PHPCrud\Crud\Wine\VanillaExtract;
# FLAG [ CRUD ] : ( Optional )
// Create // Read // Update // Delete
Vanilla::MAKE | Vanilla::FETCH | Vanilla::PUT | Vanilla::DELETE
// Database Configuration
$path > ./plugins/Crud/DBWine.php
# HOST OR SERVER NAME
const DB_HOST = 'localhost';
# HOST USER NAME
const DB_USERNAME = 'root';
# HOST PASSWORD
const DB_PASSWORD = '';
# DATBASE NAME
const DB_NAME = '';
-----------------------------------
// New instance, Incase request to Join in single database connection
$wineVanill = new Vanilla();
// Establish public connection
$wine_db = $new->wine_db();
# Create or Insert Data to Database
if( $wine_db === false ) { die("ERROR: Could not connect. " . $wine_db->connect_error); }
// Create incase insert bulk & join w/request last ID :
$wine = $wineVanilla->wine_creates( 'tbl_name' , [
'col_name_1' => '?', // !must be like : [ '?' ][ $debug : true ] " INSERT INTO tbl_name (col1, col2) VALUES ( ?,? ) ";
'col_name_2' => '?'
] , "ss" , array(
$value_col_name_1,
$value_col_name_2
));
echo ( !empty($wine) ) ? "Last_id : {$wine} Added new record! " : '';
// OR Create single data
$c = new Vanilla( Vanilla::MAKE, 'tbl_name', [
'col_name_1' => 'col_name_1_val',
'col_name_2' => 'col_name_2_val'
] , 'callBack' );
function callBack( $new_record ) { if( $new_record ) { echo " Added new record! "; } }
$wine_db->close();
# Read Data from Database
if( $wine_db === false ) { die("ERROR: Could not connect. " . $wine_db->connect_error); }
// Execution
function callBack( $read_datas ) { if( $read_datas ) { foreach( $read_datas as $val ) { echo $val["col_name"]; } } }
// Query
$wineVanilla->wine_fetch( 'tbl_name', [ 'name' ], 'callBack' );
// OR
$wine = NEW Vanilla( Vanilla::FETCH, 'tbl_name', [
'col_name',
] , 'callBack' );
$wine_db->close();
# Update data from Database
if( $wine_db === false ) { die("ERROR: Could not connect. " . $wine_db->connect_error); }
function callBack( $updated ) { if( $updated ) { echo " Updated record! "; } }
// Update
$wineVanilla->wine_update( 'tbl_info', [
'col_name' => 'col_name_val',
'condition' => [" WHERE id = 107 "]
] , 'callBack' );
// OR
$wine = new Vanilla( Vanilla::PUT, 'table_name', [
'col_name' => 'Value_1',
'condition' => [" WHERE tabel_id = 1 "]
] , 'callBack' );
$wine_db->close();
# Delete data from Database
if( $wine_db === false ) { die("ERROR: Could not connect. " . $wine_db->connect_error); }
function callBack( $deleted ) { if( $deleted ) { echo " Deleted record! "; } }
// col_name OR ( * ) if selected all data
// empty table run with [ 'mixed' ]
$wineVanilla->wine_delete( '', [
'table_name',
'condition' => [" WHERE id = 107 "]
] , 'callBack' );
// OR
$useWine = new Vanilla( Vanilla::DELETE, '', [
'table_name',
'condition' => [" WHERE id = 1 "]
] , 'callBack' );
$wine_db->close();
/**
* Defined : multi server or switch to databases
* @since wine v1.3.1.1
* @since vanilla v1.3.0.0
* @since 04.30.2022
**/
wine_multi_server( object $db , vanilla|string $flag, array $method = [] );
// Incase of Create
wine_multi_server( object $db , Vanilla::MAKE, [ 'query' => [] , 'dataType' => '', 'values' => [] debug => false ] );
// Incase get inserted last id
$wine_multi_db = wine_multi_server( object $db , Vanilla::MAKE, [ 'query' => [] , 'dataType' => '', 'values' => [] debug => false ] );
echo $wine_multi_db ?? "Sucessfull inserted last ID ".$wine_multi_db ;
// Incase of Read
wine_multi_server( object $db , Vanilla::FETCH, [ 'query' => [] , 'fetch_request' => function() { ... }, debug => false ] );
// Incase of Update
wine_multi_server( object $db , Vanilla::PUT, [ 'query' => [] , 'put_request' => function() { ... }, debug => false ] );
// Incase of Delete
wine_multi_server( object $db , Vanilla::DELETE, [ 'query' => [] , 'delete_request' => function() { ... }, debug => false ] );
/**
* Defined: Incase of Create Multiple DB or switch
* @since wine v1.3.1.1
* @since vanilla v1.3.0.0
* @since 04.30.2022
**/
if(isset($_REQUEST['insertData']) == true ) {
if( $wine_create = $this->vanilla->wine_multi_server( new mysqli('localhost','root','','multiserver'), $this->vanilla::MAKE, ['query' => [
'mixed' => [' INSERT INTO crud ( multi_name , multi_mobile , multi_email ) VALUES ( ?,?,? ); ']
], 'dataType' => 'sss', 'values'=> array(
trim($_POST['friend_name']) ?? '',
trim($_POST['friend_mobile']) ?? '',
trim($_POST['friend_email']) ?? ''
), 'debug' => false ] ) ) {
$_SESSION['create'] = "Last_id : " . $wine_create . " Added new record! ";
header("location: vanilla-crud-multi.php?create-succesfully");
}
}
/**
* Defined: Incase of Read Multiple DB or switch
* @since wine v1.3.1.1
* @since vanilla v1.3.0.0
* @since 04.30.2022
**/
$this->read = $this->vanilla->wine_multi_server(new mysqli('localhost','root','','multiserver'), $this->vanilla::FETCH, [ 'query' => [
'mixed' => [ "SELECT * FROM crud ORDER BY id DESC LIMIT 3 " ]
], 'fetch_request' => function( $read ) {
$friends = array(); if( $read ) {
foreach ($read as $value) {
$friends[] = ELEM('tr', [ CHILD => [
['td', VALUE => [ $value["multi_name"] ] ],
['td', VALUE => [ $value["multi_mobile"] ] ],
['td', VALUE => [ $value["multi_email"] ] ],
['th', VALUE => [ ELEM('a', ELEM('i','', [['class','aria-hidden'],['fa fa-pencil','true']]) ,[['href'],['vanilla-crud-multi.php?edit='.$value["id"] .'']]) ] ],
['th', VALUE => [ ELEM('a', ELEM('i','', [['class','aria-hidden'],['fa fa-trash' ,'true']]) ,[['href'],['vanilla-crud-multi.php?delete='.$value["id"] .'']]) ] ]
]
]);
} return (array) $friends ;
}
return [];
}, 'debug' => false ] );
// execute
echo $this->init->wine_extract($this->read);
/**
* Defined: Incase of edit/fetch Multiple DB or switch
* @since wine v1.3.1.1
* @since vanilla v1.3.0.0
* @since 04.30.2022
**/
if (isset($_REQUEST['edit']) == true ) :
$this->updateRequest = true;
$id = $_REQUEST['edit'];
$friend = $this->vanilla->wine_multi_server(new mysqli('localhost','root','','multiserver'), $this->vanilla::FETCH, [ 'query' => [
'mixed' => [" SELECT * FROM crud WHERE id = ". $id ]
], 'fetch_request' => function ( $friend ) {
if($friend) { foreach($friend as $val ) { return $val; } }
}, 'debug' => false] );
$this->friend_name = $friend['multi_name'];
$this->friend_mobile = $friend['multi_mobile'];
$this->friend_email = $friend['multi_email'];
$this->friend_id = $id;
endif;
/**
* Defined: Incase of Update Multiple DB or switch
* @since wine v1.3.1.1
* @since vanilla v1.3.0.0
* @since 04.30.2022
**/
if(isset($_REQUEST['updateData']) == true ) :
$friend_name = $_REQUEST['friend_name'];
$friend_mobile = $_REQUEST['friend_mobile'];
$friend_email = $_REQUEST['friend_email'];
$this->vanilla->wine_multi_server(new mysqli('localhost','root','','multiserver'), $this->vanilla::PUT, [ 'query' => [
'mixed' => [
"UPDATE crud
SET `multi_name` = '$friend_name',
`multi_mobile` = '$friend_mobile',
`multi_email` = '$friend_email'
WHERE id = ".$_REQUEST['friend_id']
]
],'put_request' => function( $do_update ) { if( $do_update ) {
$_SESSION['update'] = 'Succesfully Friend Updated !';
header("location: vanilla-crud-multi.php?update-succesfully");
}
} , 'debug' => false ] );
endif;
/**
* Defined: Incase of Delete Multiple DB or switch
* @since wine v1.3.1.1
* @since vanilla v1.3.0.0
* @since 04.30.2022
**/
if( isset($_REQUEST['delete']) == true ) :
$deleted_friend = $_REQUEST['delete'];
$this->vanilla->wine_multi_server(new mysqli('localhost','root','','multiserver'), $this->vanilla::DELETE, [ 'query' => [
'mixed' => [" DELETE FROM crud WHERE id = ". $deleted_friend ]
],'delete_request' => function( $do_update ) { if( $do_update ) {
$_SESSION['delete'] = 'Succesfully Friend Deleted !';
header("location: vanilla-crud-multi.php?delete-succesfully");
}
} , 'debug' => false ] );
endif;
// Query incase of mixed
$query = [ 'mixed' => [" DELETE FROM `tbl_name` WHERE `col_id` = 179; "] ]
$useWine->wine_delete( null, $query , 'callBack' );
// Incase of Query debugging set $debug = true | last @param
$useWine->wine_delete( 'tbl_name', $query , 'callBack', true );
# Registered array keys
[ 'condition' ] && [ 'mixed' ]
# PHPCrud Flags
// Create
$wineCrud = new Vanilla(Vanilla::MAKE, string $tbl_name = null , array $query = [] , mixed $callback = null, bool $debug = false );
// Read
$wineCrud = new Vanilla(Vanilla::FETCH, string $tbl_name = null , array $query = [] , mixed $callback = null, bool $debug = false );
// Update
$wineCrud = new Vanilla(Vanilla::PUT, string $tbl_name = null , array $query = [] , mixed $callback = null, bool $debug = false );
// Delete
$wineCrud = new Vanilla(Vanilla::DELETE, string $tbl_name = null , array $query = [] , mixed $callback = null, bool $debug = false );
PHPCrud-sample-data >
PHPCrud_RESTAPI-Template >
Github : To allow me to upload my PHPWine plugin Vanilla Flavour to repository
php.net : To oppurtunity Develop web application using corePHP - PHPFrameworks
LICENSE BY MIT
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Would you like me to treat a cake and coffee ?
Become a donor, Because with you! We can build more...
Donate:
GCash : +639650332900
Paypal account: syncdevprojects@gmail.com
Thanks and good luck!