1. Go to this page and download the library: Download zerifas/ladder library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
zerifas / ladder example snippets
namespace YourAppNamespace\Migration;
use Zerifas\Ladder\Migration\AbstractMigration;
class Migration1455898557 extends AbstractMigration
{
public function getName()
{
return 'Demo lots of features';
}
public function apply()
{
// We are assuming that the `users` table already exists for this example,
// and we are creating the `posts` table, and creating a user.
$posts = $this->table('posts');
// addColumn($name, $type, array $options = [])
// Possible keys and values for `$options`:
// null - boolean used to allow a column's value to be null, default: true
// limit - integer for `varchar` column width, or string '10, 3' for `float`/`double` column precision
// options - array of strings for `enum` column options
// unsigned - boolean, used to mark `integer` columns as unsigned, default: false
// default - mixed value to use as default column value
// after - column name to add this new column after
$posts->addColumn('id', 'autoincrement', ['null' => false, 'unsigned' => true])
->addColumn('userId', 'integer', ['null' => false, 'unsigned' => true])
->addColumn('urlSlug', 'varchar', ['null' => false, 'limit' => 10])
->addColumn('createdAt', 'datetime', ['null' => false])
->addColumn('publishedAt', 'datetime')
->addColumn('title', 'varchar', ['null' => false, 'limit' => 128])
->addColumn('body', 'text', ['null' => false])
->addIndex('PRIMARY', ['id']) // Create index named PRIMARY, containing the `id` column
->addIndex('userId') // If no columns given, Ladder assumes the name is a column
->addIndex('userId:createdAt', ['userId', 'createdAt'], ['unique' => true]) // Custom name, specified columns, and unique
->create()
;
// Create a user, and get its unique id.
$users = $this->table('users');
$users
->addColumn('userGroup', 'integer', ['null' => false, 'default' => 0, 'first' => true])
->addColumn('notes', 'text', ['after' => 'userGroup'])
->alter()
;
$users->insert([
'username' => '<username here>',
'password' => '<some valid password hash>',
]);
// If we return an array from this `apply` method, the same data will be supplied
// as the `$data` parameter when `rollback` is called.
return [
'userId' => $users->getLastInsertId(),
];
}
public function rollback(array $data = null)
{
$users = $this->table('users');
if (($id = $data['userId'] ?? null)) {
$users->delete([
'id' => $id,
]);
}
$users
->dropColumn('notes')
->dropColumn('userGroup')
->alter()
;
$this->table('posts')->drop();
}
}
bash
$ vendor/bin/ladder create 'Create user table'
src/Migration/Migration1455898526.php
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.