Страница 1 от 1

Query Builder Class

Публикувано на: 13 Авг 2019, 15:27
от Autumn Shade
Какво представлява?
С две думи: Laravel Eloquent(https://laravel.com/docs/5.8/queries), с малко по-малко функционалности. Горе-долу са докарани, но все пак, едното е цял engine, а това което предоставям аз е class със cache.

Как мога да се сдобия с него?
https://packagist.org/packages/stfkolev/iowis
https://github.com/stfkolev/Iowis

Ъ, добре, имам го, но как се ползва, кво се прави, яде ли се, аз ще мога ли?
Да, яде се, пише се на хартия кода, всеки според възможностите си, те така:

Код за потвърждение: Избери целия код

/*! Примерен код */

/*! Ако използваме composer, за тея дето знаят какво е: */
require 'vendor/autoload.php';

/*! Ако ли не сме много напред с технологията или сме малко захлюпени: */
require_once 'src/Builder.php';

/*! Правим си конфигурацията за връзка с базата данни */
$config = [
    'host'      => 'localhost',
    'driver'    => 'mysql',
    'database'  => 'test',
    'username'  => 'root',
    'password'  => '',
    'charset'   => 'utf8',
    'collation' => 'utf8_general_ci',
    'prefix'     => ''
];

/*! Правим променлива, която да вика констрктора, с параметър config-а. */
$db = new \Iowis\Builder($config);

/** 
   * И до тук сме супер. От тука насам започва интересното и лесното:
   * Да кажем, че имаме една заявка: "INSERT INTO users (name, age, country) VALUES ('Autumn Shade', 21, 'Bulgaria')".
   * Да, това изглежда странно, макар за някои да е лесно, други не помнят синтаксиса. 
   *
   * Ето как би била изглеждала заявката, ако ползвате Iowis:
   */
$query = $db->table('users')->insert(
	[
		'name' => 'Autumn Shade',
		'age' => 21,
		'country' => 'Bulgaria'
	]);
	
/*! Проверяваме дали е успешна заявката */
if($query) {
	echo 'Record added! - Insert ID: ' . $db->insertId();
}
Това беше един пример за въвеждане на в базата данни. Има много функции, повечето, които са направени за улеснение на select заявките. Има chain methods, методи, които могат да се натрупват.

Един пример:

Код за потвърждение: Избери целия код

$db->table('test')->where('age', 21)->orWhere('age', '>', 25)->getAll();
/** 
   * Излиза като изходен код в SQL: 
   * SELECT * FROM test WHERE age = '20' OR age > '25'
   */
Има функции за всяка операция в SQL, могат да се въвеждат по този начин. Няма само за create table, но и за нея ще се направи в бъдеще. Там е малко по-особено.

Това е като цяло, ако има въпроси, неработещи неща, грешки, или в github или тук.