Download the PHP package tamedevelopers/database without Composer
On this page you can find all versions of the php package tamedevelopers/database. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download tamedevelopers/database
More information about tamedevelopers/database
Files in tamedevelopers/database
Package database
Short Description Lightweight PHP ORM Database Model.
License MIT
Homepage https://github.com/tamedevelopers/database
Informations about the package database
PHP ORM Database
Inspiration
Having been introduced to learning Laravel Framework; Over the past yr(s), Coming back to vanilla PHP,
was pretty tough. So i decided to create a much more easier way of communicating with Database, using native PHP PDO:: Driver
.
Documentation
- Requirements
- Installation
- Instantiate
- Init.php File
- BootLoader
- Database Connection
- Database Disconnect
- App Debug ENV
- More Database Connection Keys
- Usage
- Table
- Insert
- Insert Or Ignore
- Update
- Update Or Ignore
- Delete
- Increment
- Decrement
- Fetching Data
- Get
- First
- First or Create
- First or Fail
- Count
- Paginate
- Exist
- Table Exists
- Collections
- Collection Methods
- Collection Usage
- Pagination
- Global Configuration
- Pagination Query
- Pagination Data
- Pagination Links
- Pagination Links Config
- Pagination Showing
- Pagination Showing Config
- Pagination Foreach Numbers
- Get Pagination
- Clause
- Query
- select
- selectRaw
- orderBy
- orderByRaw
- latest
- oldest
- inRandomOrder
- random
- limit
- offset
- join
- leftJoin
- where
- orWhere
- whereRaw
- whereColumn
- whereNull
- orWhereNull
- whereNotNull
- orWhereNotNull
- whereBetween
- whereNotBetween
- whereIn
- whereNotIn
- groupBy
- Database Migration
- Create Table Schema
- Default String Length
- Update Column Default Value
- Run Migration
- Drop Migration
- Drop Table
- Drop Column
- Get Database Config
- Get Database Connection
- Get Database Name
- Get Database PDO
- Get Database TablePrefix
- Database Import
- Update Env Variable
- Autoload Register
- Collation And Charset
- Extend Model Class
- Helpers Functions
- Error Dump
- Error Status
- Useful links
Requirements
>= php 8.0+
Installation
Prior to installing database package
get the Composer dependency manager for PHP because it'll simplify installation.
Instantiate
Step 1 — Require composer autoload
:
Step 2 — Call the below method() and Run once in browser
- This will auto setup your entire application on a
go!
Description |
---|
It's important to install vendor in your project root, As we use this to get your root [dir] |
By default you don't need to define any path again |
Files you'll see after you reload browser: |
.env .env.example .gitignore .htaccess .user.ini init.php |
- or --
Helpers Function
Init.php File
- [optional] This will extends the
composer autoload
and other setup
Description |
---|
Once application is started! You can choose to include the init.php |
The file includes all configuration needed and as well extends the vendor/autoload.php path. |
BootLoader
-
If you do not want to include or use the
init.php
file- All you need do is call the bootloader, to start your application.
- or --
Helpers Function
Database Connection
- You have the options to connect to multiple database
- First navigate to [config/database.php] file and add a configuration
- Takes two (2) params
key
asstring
andarray
[optional]
Database Disconnect
- If you want to connect to already connected database, You first need to disconnect
- Takes one param as
string
- Takes one param as
Database Reconnect
- same as
Database Connection
App Debug Env
- The
.env
file contains a key calledAPP_DEBUG
- It's mandatory to set to false in Production environment
- This helps to secure your applicaiton and exit error 404
- instead of displaying entire server errors.
key | Type | Default Value |
---|---|---|
APP_DEBUG | boolean | true |
More Database Connection Keys
- All available connection keys
- The DB_CONNECTION uses only
mysql
- No other connection type is supported for now.
- The DB_CONNECTION uses only
key | Type | Default Value |
---|---|---|
driver | string | mysql |
host | string | localhost |
port | int | 3306 |
database | string | |
username | string | |
password | string | |
charset | string | utf8mb4 |
collation | string | utf8mb4_unicode_ci |
prefix | string | |
prefix_indexes | bool | false |
Usage
- All Methods of usage
Table
- Takes a parameter as
string
table_name
Insert
- Takes one parameter as assoc array
column_name => value
- It returns an object on success or error
Insert Or Ignore
- Same as
insert()
method- It returns an object of created data or
false
on error
- It returns an object of created data or
Update
- Takes one parameter as assoc array
column_name => value
- Returns an
int
numbers of affected rows or error
- Returns an
Update Or Ignore
- Same as
update()
method- Returns an
int
numbers of affected rows or0
on error
- Returns an
Delete
- Returns an
int
Increment
- Takes three parameter
- Only the first param is required
param | Data types |
---|---|
column required |
string |
count or [] |
int | array |
param | array |
1 By default if the the second param not passed, this will increment by 1
-
You can also pass in a second or third parameter to update additional columns
- You can ommit the second param and it'll be automatically seen as update param (If an array)
Decrement
- Same as Increment
Fetching Data
object name | Returns |
---|---|
get() | array of objects |
find() | object | null |
first() | object | null |
FirstOrIgnore() | object | null |
FirstOrCreate() | object |
firstOrFail() | object or exit with 404 status |
count() | int |
paginate() | array of objects |
exists() | boolean true | false |
tableExists() | boolean true | false |
GET
First
First or Create
-
Take two param as an
array
- Mandatory
$conditions
param asarray
- [optional]
$data
param asarray
- Mandatory
-
First it checks if codition to retrieve data. If fails, then it merge the
$conditions
to$data
value to create new records - or --
Example 2
First or Fail
- Same as
first()
method but exit with error code 404, if data not found
Count
Paginate
- Takes param as
int
$per_page
- By default if no param is given, then it displays 10 per page
Exists
- Returns boolean
true \| false
Table Exists
- Takes param as
string
$table_name
Collections
- You can directly use
methods
ofCollections Instance
on any of the below- All the below
methods
are received by Collectionclass
- get()
- find()
- first()
- firstOrIgnore()
- firstOrCreate()
- firstOrFail()
- insert()
- insertOrIgnore()
- All the below
Collection Methods
Methods | Description |
---|---|
getAttributes() | array Returns an array of data |
getOriginal() | object Returns an object of data |
isEmpty() | boolean true \| false If data is empty |
isNotEmpty() | opposite of ->isEmpty() |
count() | int count data in items collection |
toArray() | array Convert items to array |
toObject() | object Convert items to object |
toJson() | string Convert items to json |
Collection Usage
-
Colections are called automatically on all Database Fetch Request
- With this you can access data as an
object\|array
key property - If no data found then it returns null on
->first()
method only
- With this you can access data as an
- Example two(2)
->get() \| ->paginate()
Request
Pagination
- Configuring Pagination
key | Data Type | Description |
---|---|---|
allow | true | false |
Default false Setting to true will allow the system use this settings across app |
class | string | Css selector For pagination ul tag in the browser |
span | string | Default .page-span Css selector For pagination Showing Span tags in the browser |
view | bootstrap | simple | cursor |
Default simple - For pagination design |
first | string | Change the letter First |
last | string | Change the letter Last |
next | string | Change the letter Next |
prev | string | Change the letter Prev |
showing | string | Change the letter Showing |
of | string | Change the letter of |
results | string | Change the letter results |
buttons | int | Numbers of pagination links to generate. Default is 5 and limit is 20 |
Global Configuration
-
1 Setup global pagination on ENV autostart
most preferred
method - or --
Helpers Function
Pagination Query
Pagination Data
Pagination Links
Pagination Links Config
Read more...
- You can directly configure pagination links - Note: If `configPagination()` `allow` is set to `true` - It'll override every other settingsPagination Showing
Pagination Showing Config
Read more...
- You can configure showing text directly as wellPagination Foreach Numbers
- Page numbering
starts counting from 1
- This will format all pagination items collections
- On each page, it starts counting from last pagination item number
Get Pagination
- Returns pagination informations
key | Description |
---|---|
limit | Pagination limit int |
offset | Pagination offset int |
page | Pagination Current page int |
pageCount | Pagination Total page count int |
perPage | Pagination per page count int |
totalCount | Pagination total items count int |
Clause
- Multiple clause
Query
- Allows the use direct sql query
SQL query syntax
- Or direct query exec()
Select
- Used to select needed columns from database
orderBy
- Takes two param
$column
and$direction
- By default
$direction
param is set toASC
- By default
orderByRaw
- Takes one param
$query
Latest
- Takes one param
$column
by default the column used isid
Oldest
- Takes one param
$column
by default the column used isid
inRandomOrder
random
Read more...
- Same as `inRandomOrder()`limit
- Takes one param
$limit
as int. By default value is1
offset
Read more...
- Takes one param `$offset` as int. By default value is `0` - Example 2 (Providing only offset will return as LIMIT without error)join
- Includes
join
|leftJoin
|rightJoin
|crossJoin
Params | Description |
---|---|
table | table |
foreignColumn | table.column |
operator | operator sign |
localColumn | local_table.column |
- or
leftJoin
- Same as
join
where
- Takes three parameter
- Only the first param is required
param | Data types |
---|---|
column | string |
operator | string |
value | string |
orWhere
Read more...
- Same as Where clausewhereRaw
- Allows you to use direct raw
SQL query syntax
whereColumn
- Takes three parameter
column
operator
column2
whereNull
- Takes one parameter
column
whereNotNull
Read more...
- Takes one parameter `column`whereBetween
- Takes two parameter
column
as stringparam
as array- Doesn't support float value
param | Data types | Value |
---|---|---|
column | string | column_name |
param | array | [10, 100] |
whereNotBetween
Read more...
- Same as `whereBetween()` methodwhereIn
- Takes two parameter
column
as stringparam
as array- Doesn't support float value
param | Data types | Value |
---|---|---|
column | string | column_name |
param | array | [0, 20, 80] |
whereNotIn
Read more...
Same as `whereIn()` methodgroupBy
- Takes one param
$column
Database Migration
- Similar to Laravel DB Migration
Just to make database table creation more easier
object name | Returns |
---|---|
create() | Create table schema |
run() | Begin migration |
drop() | Drop migration tables |
Create Table Schema
-
Takes param as
table name
- Second parameter
string
jobs|sessions
(optional) -If passed will create a dummyjobs|sessions
table schema
- Second parameter
- or --
Helpers Function
Default String Length
- In some cases you may want to setup default string legnth to all Migration Tables
Description |
---|
The Default Set is 255 But you can override by setting custom value |
According to MySql v:5.0.0 Maximum allowed legnth is 4096 chars |
If provided length is more than that, then we'll revert to default as the above |
This affects only VACHAR |
You must define this before start using the migrations |
- or --
Helpers Function
Update Column Default Value
- In some cases you may want to update the default column value
- Yes! It's very much possible with the help of Schema. Takes three (3) params
$tablename
as string$column_name
as string$values
as mixed dataNULL
NOT NULL\|None
STRING
current_timestamp()
Run Migration
- This will execute and run migrations using files located at [root/database/migrations]
Drop Migration
Read more...
- Be careful as this will execute and drop all files table `located in the migration` - [optional param] `bool` to force delete of tablesDrop Table
Read more...
- Takes one param as `string` $table_nameDrop Column
Read more...
- To Drop Column `takes two param` - This will drop the column availableGet Database Config
Get Database Connection
- or --
Helpers Function
Get Database Name
Get Database PDO
Get Database TablePrefix
Database Import
-
You can use this class to import .sql into a database programatically
- Remember the system already have absolute path to your project.
- or --
Helpers Function
Update Env Variable
- You can use this class to import .sql into a database programatically
Params | Description |
---|---|
key | ENV key |
value | ENV value |
allow_quote | true | false - Default is true (Allow quotes within value) |
allow_space | true | false - Default is false (Allow space between key and value) |
- or --
Helpers Function
Collation And Charset
- Collation and Charset Data
listing
Collation
- utf8_bin
- utf8_general_ci
- utf8mb4_bin
- utf8mb4_unicode_ci
- utf8mb4_general_ci
- latin1_bin
- latin1_general_ci
Charset
- utf8
- utf8mb4
- latin1
Extend Model Class
Read more...
- You can as well extends the DB Model class directly from other classHelpers Functions
function name | Description |
---|---|
db() | Return instance of new DB($options) class |
db_connection() | Same as $db->dbConnection() |
config_pagination() | Same as $db->configPagination() or AutoLoader::configPagination |
autoloader_start() | Same as AutoLoader::start() |
env_update() | Same as Env::updateENV method |
app_manager() | Return instance of (new AppManager) class |
import() | Return instance of (new DBImport)->import() method |
migration() | Return instance of (new Migration) class |
schema() | Return instance of (new Schema) class |
Error Dump
function | Description |
---|---|
dump | Dump Data |
dd | Dump and Die |
Error Status
- On error returns
404
status code - On success returns
200
status code
Useful Links
- @author Fredrick Peterson (Tame Developers)
- If you love this PHP Library, you can Buy Tame Developers a coffee
- Lightweight - PHP ORM Database
- Support - Library