2017 © Pedro Peláez
 

library laravel-storedprocedures

image

3ie/laravel-storedprocedures

  • Friday, April 17, 2015
  • by 3ie
  • Repository
  • 5 Watchers
  • 2 Stars
  • 1,504 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 5 Forks
  • 0 Open issues
  • 8 Versions
  • 0 % Grown

The README.md

Build Status, (*1)

Laravel stored procedures

This package allow you to work with PostgreSQL stored procedures with Laravel 5. It allows you to generate models to simply use your procedures in your PHP code., (*2)

Installation

Package installation

With Composer

Require this package by adding following dependency on your composer.json, (*3)

"3ie/laravel-storedprocedures": "0.1.*"

Then update composer with composer update or composer install., (*4)

With Laravel bundle

If you do not want to use Composer, you can install it by using Laravel Bundle by typing this command, (*5)

php artisan bundle:install StoredProcedure

Registering service provider

Once the package is installed, add the ServiceProvider in providers array on app/config/app.php :, (*6)

'providers' => array(
    'Mrblackus\LaravelStoredprocedures\LaravelStoredproceduresServiceProvider'
);

Usage

You can generate model for your stored procedures (aka functions) by typing this command, (*7)

php artisan generate-sp

Only stored procedures which name start with sp_ will have a model generated, other ones will be ignored. Models will be written in app/store_procedures directory (or the one defined in configuration file). Do not edit these models ! They will be overwritten at next generation., (*8)

Configuration

You have to run the vendor:publish method to copy the configuration file into you app directory, (*9)

php artisan vendor:publish

You can change the database schema to read and the directory where models for stored procedures are written. You can also modify the namespace used for your sp_models, (*10)

return array(
    'schema'            => 'public',
    'model_save_dir'    => 'stored_procedures/',
    'model_namespace'   => 'App'
);

Models

Generated models have an execute() methods that allow you to execute stored procedure and get result (if the procedure returns one) from it., (*11)

If procedure have IN or INOUT parameter, the execute() method will have the same parameter in the same order., (*12)

If it has OUT or INOUT parameter, model will have an attribute with getter/setter for every OUT parameters., (*13)

Setters will not modify data, they are only present to allow you to format data if you want to use it on views by uysing whole model instead of simple variables., (*14)

Example

Giving the following stored procedure, that retrieve all friends of a user giving its id..., (*15)

CREATE OR REPLACE FUNCTION sp_getfriends(IN id integer, OUT id integer, OUT username character varying, OUT firstname character varying, OUT lastname character varying, OUT facebook_id character varying)
  RETURNS SETOF record AS
$BODY$SELECT id, username, firstname, lastname, facebook_id
FROM users
LEFT JOIN friends ON users.id = friends.friend_with_id
WHERE friends.user_id = $1$BODY$
  LANGUAGE sql VOLATILE
  COST 100
  ROWS 1000;

...we will have a SP_Getfriends class generated. We can use it like this :, (*16)

$userId = 20;
$friends = SP_Getfriends::execute($userId);

$firstFriend = $friends[0];
$friend->getId();
$friend->getUsername();
$friend->getFacebookid();

The Versions

17/04 2015

dev-master

9999999-dev

  Sources   Download

The Requires

 

by Mathieu Savy

17/04 2015

0.1.3

0.1.3.0

  Sources   Download

The Requires

 

by Mathieu Savy

20/01 2015

0.1.2

0.1.2.0

  Sources   Download

The Requires

 

by Mathieu Savy

20/01 2015

dev-release/0.1.1

dev-release/0.1.1

  Sources   Download

The Requires

 

by Mathieu Savy

20/01 2015

0.1.1

0.1.1.0

  Sources   Download

The Requires

 

by Mathieu Savy

02/09 2014

dev-dev

dev-dev

  Sources   Download

The Requires

 

by Mathieu Savy

02/09 2014

dev-release/0.1

dev-release/0.1

  Sources   Download

The Requires

 

by Mathieu Savy

02/09 2014

0.1

0.1.0.0

  Sources   Download

The Requires

 

by Mathieu Savy