Download the PHP package chevere/sql2p without Composer
On this page you can find all versions of the php package chevere/sql2p. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download chevere/sql2p
More information about chevere/sql2p
Files in chevere/sql2p
Package sql2p
Short Description Parameter(s) for MySQL schemas
License Apache-2.0
Homepage https://chevere.org
Informations about the package sql2p
SQL2P
Summary
SQL2P generates Parameter(s) for MySQL schemas. It represents database tables and its columns using the Parameter package.
Installing
SQL2P is available through Packagist and the repository source is at chevere/sql2p.
What it does?
From a CREATE TABLE
statement like this one below.
SQL2P generates the following PHP code.
The invoiceTable()
function returns table invoice
schema in PHP code using Array Parameter where each column is represented by another Parameter.
From this you can add your own validation rules on top of generated code.
For example, you limit quantity
to a range of 100, 200
by adding max
and min
arguments. Add a regex to details
to validate string shape.
Array Parameter object returned by this function can be also used to dynamic interact with one or more of these columns. See Array Composing to learn more.
Creating SQL2P
Create a SQL2P
instance by passing the SQL and a Writer instance. On instance creation the SQL is parsed and the writer is used to write the generated code.
Data validation
Use SQL2P to validate data against table Parameter schema.
For example, on a single fetch result you may get the following array for a database row.
Function invoiceTable()
can be used to validate $fetch
by invoking it.
Use arrayFrom
function to create an array taking only the columns you need.
Use arguments
function to get typed access to fetched array members.
When fetching multiple rows wrap Array table with iterable function.
Note that arguments
function supports iterable.
Array composing
Parameter provides a set of tools to work with arrays, enabling to dynamically add, remove or modify values. It also enables to compose arrays from other arrays.
For example to add a total_usd
virtual column to invoiceTable()
.
When JOIN
tables you may want to take columns based on joined tables. Use takeFrom
function to create a iterable with column => parameter
pairs.
For this code $client
is assigned to an iterable containing name
and email
column pairs from clientTable()
. Then by calling withRequired
on $invoice
it gets these columns on spread.
Documentation
Documentation is available at chevere.org.
License
Copyright Rodolfo Berrios A.
Chevere is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.