PHP code example of nicollassilva / simplephp

1. Go to this page and download the library: Download nicollassilva/simplephp library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

nicollassilva / simplephp example snippets


protected $config = [
        "driver" => "mysql",
        "hostname" => "localhost",
        "charset" => "utf8mb4",
        "port" => 3306,
        "username" => "root",
        "password" => "",
        "database" => "",
        "timezone" => "America/Sao_Paulo",
        "pathLog" => __DIR__ . "/../../../../../your-log.log",
        "options" => [
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_CASE => PDO::CASE_NATURAL,
            PDO::ATTR_ORACLE_NULLS => PDO::NULL_EMPTY_STRING
        ]
    ];

namespace Models;

use SimplePHP\Model\SimplePHP;

class User extends SimplePHP {

    function __construct()
    {
        /**
         * @param string Table Name
         * @param string Primary Key
         */
        parent::__construct('users', 'id');
    }
}

      Models\User;

    $userModel = new User();
    $user = $userModel->find()->execute();


use Models\User;

$userModel = new User();

/** find all users */
$user = $userModel->find()->execute();

/** find user by id */
$user = $userModel->find(5)->execute();

/** find users and return the total result count */
$count = $userModel->count()->execute();

/** find user with one where */
$user = $userModel->where([
                                     ['name', '=', 'Nicollas']
                                ])->execute();

/** find user with several where. Conditional AND default */
$user = $userModel->where([
                                     ['name', '=', 'John'],
                                     ['email', '=', '[email protected]']
                                ])->execute();

/** find user with LIKE. Conditional AND default */
$user = $userModel->where([
                                     ['name', 'LIKE', '%Guilherme%'],
                                     ['email', '=', '[email protected]']
                                ])->execute();

/** find user with conditional where. Condicional OR */
$user = $userModel->where([
                                     ['name', 'LIKE', '%Nicollas%'],
                                     ['name', 'LIKE', '%Nicolas%']
                                ], 'OR')->execute();

/** find users by name = Nicollas OR name = Nicolas */
$user = $userModel->where([
				     ['name', '=', 'Nicollas']
			])
			->orWhere([
				     ['name', '=', 'Nicolas']
			])->execute();

/** find user using the basic structure query */
$user = $userModel->whereRaw("name = 'Nicollas'")->execute();

/** find users with limit */
$user = $userModel->limit(5)->execute();

/** find users with limit & offset */
$user = $userModel->limit(5)->offset(5)->execute();

/** find users with skip & take | the same as limit & offset */
$user = $userModel->take(5)->skip(5)->execute();

/** find users with orderBy. second parameter optional, default ASC */
$user = $userModel->orderBy('id', 'DESC')->orderBy('name')->execute();

/** find users and return results as attributes. EXAMPLE: $user->name instead of $user['name'] */
$user = $userModel->find()->execute(true); 

/** find users with specific columns. */
$user = $userModel->find()->only(['name', 'id', 'email'])->execute();

/** find users creating exceptions in columns. */
$user = $userModel->find(5)->except(['password'])->execute();

/** search in other database table */
$user = (new User())->useTable('posts')->find()->where([['owner_id', '=', $user->id]])->execute();

/** debug query for possible errors | return string */
$user = $userModel->whereRaw("uuid = 'f031b537-672f-4fba-b8a6-af45e778ad93'")->debugQuery();

/** group by method */
$user = $userModel->groupBy('id');


/** Search for a user's posts varying between the privacy in which it was saved */
/** You can pass false as a fourth argument, the class will understand that you are trying to relate tables and will not put single quotes */

$posts = (new User())->useTable('posts p, users u')
                             ->where([['u.id', '=', $user['id'] ?? $visit['id']],
                                      ['u.id', '=', 'p.user_id', false], /** example of the fourth argument for relating tables */
                                      ['p.privacity', '<=', isset($privacity) && is_array($privacity) ? 3 : ($visit['url'] != $flag ? 1 : 4)]])
                             ->only(['p.*', 'u.name', 'u.url', 'u.i_profile'])
                             ->limit(10)
                             ->orderBy('p.id')
                             ->execute();


use Models\User;

$userModel = new User();
$user = $userModel->find(3)->execute(true);

    /** @return null|bool */
    if($user->destroy()) {
        echo "Success delete!";
    }

use Models\User;

$userModel = new User();
$user = $userModel->find(5)->execute(true);
$user->name = "Other name";
$user->email = "[email protected]";

    /** @return null|bool */
    if($user->save()) {
        echo "Success!";
    }

use Models\User;

$userModel = new User();
$user = $userModel->find(8)->only(['id', 'name'])->execute(true);
$user->name = "Russian Gabolev";

$user->email = "[email protected]";
/** This informations was not called from the database, but they exist. */
$user->updated_at = time();

    /** @return null|bool */
    if($user->save()) {
        echo "Success!";
    }

use Models\User;

    $userModel = new User();
    $user = $userModel->request([
        "name" => "Dr. Haylie Bahringer",
        "email" => '[email protected]', 
        "password" => 123456 // Encrypt before sending to the database
    ])->create();

use Models\User;

    $userModel = new User();
    $_POST = [
        "name" => "Hadjei Moccab",
        "email" => "[email protected]",
        "password" => 123456 // Encrypt before sending to the database
    ];
    $user = $userModel->request($_POST)->create();

use Models\User;

    $userModel = new User();
    $user = $userModel->find(18)->execute(true);
    
    /** @return string | @param string $hash, @param Array $options */
    $user->password = $userModel->hashFormat($_POST['password']);
    
    /** @return string | @param string $url */
    $user->home = $userModel->urlFormat('Dr. John,Sik!@'); // dr-john-sik
    
    /** @return bool | @param string $email */
    if(!$userModel->validateEmail($_POST['email'])) {
        echo "Invalid email!";
    }
    
    /** @return bool | @param string $pass */
    if(!$userModel->validatePassword($_POST['password'])) {
        echo "Invalid password!";
    }
    
    /** @return bool | @param string $phone */
    if(!$userModel->validatePhone($_POST['telephone'])) {
        echo "Invalid telephone!";
    }
    
    /** @return bool | @param int $size */
    $user->recovery_token = $userModel->aleatoryToken(15);
    
    $user->save()

PHP ^7.2.5
EXT-PDO *