Giter VIP home page Giter VIP logo

hamper's Introduction

Hamper DB

Developer friendly database library for vtiger. Hamper improove the code quality and the readbility of your PHP code around database access and manipulation.

Why I use it?

Here is a list of compelling reasons to use it

  • Avoid old-style loop over results.
  • Use by default associative array for fields.

Installation

You can install the package via composer:

composer require javanile/hamper

Usage

You simply get your $hdb object to access on database

require_once 'vendor/autoload.php';

use Javanile\Hamper\Hamper;

$hdb = Hamper::getInstance();

๐Ÿ“ƒ Documentation

๐Ÿ˜Ž The documentation lists all the functions you can use to make the code simple and easy to read.

The access you have on the data inside the database is based on extraction methods that return array and that you can easily manipulate with foreach. Use the functions well because they allow you to take a single record or a list of records or all the values of a column. Before starting to use it, read the list of functions carefully, and you will automatically use the best one based on the context. For each function you are also presented, the "๐Ÿ˜ฟ Legacy", the version of the old style Vtiger code you can replace with Hamper functions, comparing them, and you will realize how Hamper improves your work.

All Functions

The following methods are used to manipulate records into database

The following methods are used to manipulate database tables and fields


ยถ Execute query

Executes the given parametric query

Usage

$hdb->query($sql, $params = [], $options = [])

Examples

This method is useful to handle this situations

// Execute simple query
$hdb->query("SET NAMES utf8");
// Execute prepare query
$hdb->query("UPDATE vtiger_users SET language = ? WHERE user_name = ?", ["en_us", "admin"]);

๐Ÿ˜ฟ Legacy

Please, replace this kind of legacy code with the $hdb->query(...) function

[back to top โ˜]


ยถ Get a single record

Fetches the next row from the result set rows by the given parametric query.

Usage

$hdb->fetch($sql, $params = [], $options = [])

Examples

This method is useful to handle this situations

// Execute simple query
$hdb->query("SET NAMES utf8");
// Execute prepare query
$hdb->query("UPDATE vtiger_users SET language = ? WHERE user_name = ?", ["en_us", "admin"]);

๐Ÿ˜ฟ Legacy

Please, replace this kind of legacy code with the $hdb->fetch(...) function

[back to top โ˜]


ยถ Get a list of records

Returns an array containing all of the result set rows by the given parametric query.

Usage

query($sql, $params = [], $options = [])

Examples

This method is useful to handle this situations

// Execute simple query
$hdb->query("SET NAMES utf8");
// Execute prepare query
$hdb->query("UPDATE vtiger_users SET language = ? WHERE user_name = ?", ["en_us", "admin"]);

๐Ÿ˜ฟ Legacy

Please, replace this kind of legacy code with the $hdb->fetchAll(...) function

[back to top โ˜]


ยถ Get a value from record

Fetches the next row from the result set rows by the given parametric query.

Usage

$hdb->fetchValue($sql, $params = [], $options = [])

Examples

This method is useful to handle this situations

$crmId = $hdb->fetchValue("SELECT crmid FROM vtiger_crmentity WHERE setype=? AND deleted=0", [$module]);

๐Ÿ˜ฟ Legacy

Please, replace this kind of legacy code with the $hdb->fetchValue(...) function

$adb = \PearDatabase::getInstance();
$result = $adb->pquery("SELECT tabid FROM vtiger_tab WHERE name=?", [$setype]);
$tabId = $adb->query_result($result, 0, "tabid");

[back to top โ˜]


ยถ Get value by key column

Execute a query to check if record with specific key and value exists.

Usage

query($sql, $params = [], $options = [])

Examples

This method is useful to handle this situations

// Execute simple query
$hdb->query("SET NAMES utf8");
// Execute prepare query
$hdb->query("UPDATE vtiger_users SET language = ? WHERE user_name = ?", ["en_us", "admin"]);

๐Ÿ˜ฟ Legacy

Please, replace this kind of legacy code with the $hdb->value(...) function

[back to top โ˜]


ยถ Check if record exists

Execute a query to check if record with specific key and value exists.

Usage

query($sql, $params = [], $options = [])

Examples

This method is useful to handle this situations

// Execute simple query
$hdb->query("SET NAMES utf8");
// Execute prepare query
$hdb->query("UPDATE vtiger_users SET language = ? WHERE user_name = ?", ["en_us", "admin"]);

๐Ÿ˜ฟ Legacy

Please, replace this kind of legacy code with the $hdb->exists(...) function

[back to top โ˜]


ยถ Insert a record

Inserts the given record within the selected table.

Usage

query($sql, $params = [], $options = [])

Examples

This method is useful to handle this situations

// Execute simple query
$hdb->query("SET NAMES utf8");
// Execute prepare query
$hdb->query("UPDATE vtiger_users SET language = ? WHERE user_name = ?", ["en_us", "admin"]);

๐Ÿ˜ฟ Legacy

Please, replace this kind of legacy code with the $hdb->insert(...) function

[back to top โ˜]


ยถ Get last ID

Return last insert ID value for the selected table.

Usage

query($sql, $params = [], $options = [])

Examples

This method is useful to handle this situations

// Execute simple query
$hdb->query("SET NAMES utf8");
// Execute prepare query
$hdb->query("UPDATE vtiger_users SET language = ? WHERE user_name = ?", ["en_us", "admin"]);

๐Ÿ˜ฟ Legacy

Please, replace this kind of legacy code with the $hdb->lastInsertId(...) function

[back to top โ˜]


ยถ Update a single record

Updates the given record with the given data.

Usage

query($sql, $params = [], $options = [])

Examples

This method is useful to handle this situations

// Execute simple query
$hdb->query("SET NAMES utf8");
// Execute prepare query
$hdb->query("UPDATE vtiger_users SET language = ? WHERE user_name = ?", ["en_us", "admin"]);

๐Ÿ˜ฟ Legacy

Please, replace this kind of legacy code with the $hdb->update(...) function

[back to top โ˜]


ยถ Delete a single record

Deletes the given record within the given table.

Usage

query($sql, $params = [], $options = [])

Examples

This method is useful to handle this situations

// Execute simple query
$hdb->query("SET NAMES utf8");
// Execute prepare query
$hdb->query("UPDATE vtiger_users SET language = ? WHERE user_name = ?", ["en_us", "admin"]);

๐Ÿ˜ฟ Legacy

Please, replace this kind of legacy code with the $hdb->delete(...) function

[back to top โ˜]


ยถ Create new table

Usage

query($sql, $params = [], $options = [])

Examples

This method is useful to handle this situations

๐Ÿ˜ฟ Legacy

Please, replace this kind of legacy code with the $hdb->create(...) function

[back to top โ˜]


Changelog

Please see CHANGELOG for more information on what has changed recently.

Testing

$ make install
$ make tdd take=tests/HamperDatabaseTest.php 

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

Socialware

We highly appreciate if you create a social post on Twitter with following button

Share on Twitter

Credits

This project exists thanks to all the people who contribute.

Support us

Javanile is a community project agency based in Sicily, Italy. You'll find an overview of all our projects on our website.

Does your business depend on our contributions? Reach out us on Patreon.

License

The MIT License (MIT). Please see License File for more information.

hamper's People

Contributors

francescobianco avatar rc2pc2 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

rc2pc2 fleurydev

hamper's Issues

Handling of DateTime (or any other) non-primitive object

When using the Hamper insert() function, it is not allowed to insert into the submitted data anything else than a primitive, instead, an error is thrown saying that those fields are not String objects.

Should be taken into consideration to implement a way to handle generic objects other than primitive ones.

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.