定制 ice-cream/database 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ice-cream/database

Composer 安装命令:

composer require ice-cream/database

包简介

Database connection handler for IceCream Framework

README 文档

README

Build Status Packagist Maintenance Made With Love

A DBAL at the most simplest of terms. Its a thin wrapper around PDO, while returning a connected PDO object.

We can connect to multiple database instances of either PGSQL or MYSQL (see below) and create open connections to each.

  • Requires PHP 7.2.x
  • Is Standalone

Install

composer require ice-cream/database

Purpose?

I wanted to understand PDO, and I still have a lot to learn about it. I could have used and created a thin wrapper around Doctrines DBAL, much like I did with Ice Cream Router in the sense that I did a thin wrapper around Symfony's router.

But I thought I could build something super simple, super easy to get started with and something that allowed me to understand exactly how PHP connects to a database.

While this isn't as fully flushed out as a regular DBAL, it is a good step in the process. You open a connection, get a db object back, do your work and you move on with your life.

There is room for growth here and room for improvement and your feedback and help will help to shape Ice Cream components into a framework.

Documentation

You can see the full documentation for the project here

Configuration

Create a new connection instance:

use IceCreamDatabase\Connect;

// Similar to that of Laravel if you are familiar.
$connections = [
  'mysql' => [
    'host' => '127.0.0.1',
    'port' => 3306,
    'database' => '',
    'username' => 'root',
    'password' => 'root',
    'charset' => 'utf8',
  ],
  'pgsql' => [
    'host' => '127.0.0.1',
    'port' => 5432,
    'dbname' => 'scotchbox',
    'username' => 'root',
    'password' => 'root',
    'charset' => 'utf8',
  ],
  'sqlite' => [
    'temp_file' => ':memory'
  ]
]

// At this time I have made the choice to only support mysql and pgsql as well as sqlite connections.
// More can be added in the future, simplicity was the game here.

$con = new Connect($connections);

This will throw a PDO exception if we cannot connect to the database. This constructor will also connect to all databases registered in the connection array.

ATTN!!

At this time the options you see specified in the array are the only ones we accept. I wanted to get this component out the door in a couple of days and decided to keep it as simple as possible for the first iteration.

So now that we are connected what can we do?

$con->db()->exec( ... );

// Should you have multiple databases configured you can do:

$con->db('mysql')->exec( ... );
$con->db('pgsql')->exec( ... );
$con->db('sqlite')->exec( ... );

ATTN!!

Notice in the configuration how we have the key as mysql or pgsql as well as sqlite?

This is important because these correlate to the supported drivers that create the connection strings to connect to the database in question.

These names are also whats stored in the associated connections manager that manages all connections.

// Get the current connection name:
$con->manager()->getCurrentConnectionName(); // mysql, sqlite or pgsql

统计信息

  • 总下载量: 21
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2017-01-12

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固