Code Monkey home page Code Monkey logo

phpcrud's Introduction

PHPCrud

PHPCrud is a CRUD System designed to extend PHPWine functionality crud features.

Downloading PHPCrud Plugin:

// 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 

Plugin PHPCrud Installation:

| - root folder
    | - vendor // generated by composer/Pkgist 
      | - PHPWine
          | - Plugins
             |- PHPCrud
          | - Wine
            | - src
            | - PHPWine.php
            | - prop.php
            | - LICENSE
            | - README.md
            | - composer.json
                    

Dependency Installation:

# 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 >


Thanks To:

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: [email protected]



Thanks and good luck!

phpcrud's People

Contributors

nielsoffice avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.