墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 Structure MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 Structure MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations DBMaker
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 Laravel Connection MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations Config/database.php
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 Laravel Connection MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations Database ServiceProvider \Illuminate\Database Config/database.php
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 Laravel Connection MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations Database ServiceProvider \Illuminate\Database DatabaseManager \Illuminate\Database Config/database.php
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 Laravel Connection MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations Database ServiceProvider \Illuminate\Database DatabaseManager \Illuminate\Database ConnectionFactory \Illuminate\Database\Connectors Config/database.php
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 Laravel Connection MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations Database ServiceProvider \Illuminate\Database DatabaseManager \Illuminate\Database ConnectionFactory \Illuminate\Database\Connectors Connection \Illuminate\Database Config/database.php
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 Laravel Connection MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations Database ServiceProvider \Illuminate\Database DatabaseManager \Illuminate\Database ConnectionFactory \Illuminate\Database\Connectors Connection \Illuminate\Database Config/database.php
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 PDO provides a data- access abstraction MySQL SQLServer SQLite MySQL select `id`, `name` from `users` MS SQLServer PHP Data Objects (PDO) $conn = new PDO(...) $conn->query($sql); ...
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 PDO provides a data- access abstraction MySQL SQLServer SQLite MySQL select `id`, `name` from `users` MS SQLServer select [id], [name] from [users] PHP Data Objects (PDO) $conn = new PDO(...) $conn->query($sql); ...
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 PDO provides a data- access abstraction MySQL SQLServer SQLite MySQL select `id`, `name` from `users` MS SQLServer select [id], [name] from [users] PHP Data Objects (PDO) $conn = new PDO(...) $conn->query($sql); ...
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 PDO provides a data- access abstraction MySQL SQLServer SQLite MySQL select `id`, `name` from `users` MS SQLServer select [id], [name] from [users] SQLite PHP Data Objects (PDO) $conn = new PDO(...) $conn->query($sql); ...
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 PDO provides a data- access abstraction MySQL SQLServer SQLite MySQL select `id`, `name` from `users` MS SQLServer select [id], [name] from [users] SQLite select "id", "name" from "users" PHP Data Objects (PDO) $conn = new PDO(...) $conn->query($sql); ...
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 MySQL SQLServer SQLite MySQL select `id`, `name` from `users` MS SQLServer select [id], [name] from [users] SQLite select "id", "name" from "users" PHP Data Objects (PDO) $conn = new PDO(...) $conn->query($sql); ... "Standard" Query Lang ?
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 Migrations MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 Migrations MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 Build a Building MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 Build a Building MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations Blueprint
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 Build a Building MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations Blueprint Builder
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 Build a Building MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations Blueprint Builder Grammar
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 Build a Building MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations Blueprint Builder Grammar Worker
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 Build a Building MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations Blueprint Builder Grammar Building Worker
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 class CreateUsersTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('users'); } } Migrations MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 class CreateUsersTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('users'); } } Schema Schema Schema Migration MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations
MigrationCreator MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 Migrations Schema Illuminate\Support\Facades public static function connection($name) { return static::$app['db']->connection($name) ->getSchemaBuilder(); } MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 Migrations Schema Illuminate\Support\Facades Connection Illuminate\Database Builder Illuminate\Database\Schema DB public static function connection($name) { return static::$app['db']->connection($name) ->getSchemaBuilder(); } MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 Migrations Schema Illuminate\Support\Facades Connection Illuminate\Database Builder Illuminate\Database\Schema DB MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 class CreateUsersTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('users'); } } Blueprint Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations Migrations Schema Illuminate\Support\Facades Connection Illuminate\Database Builder Illuminate\Database\Schema DB Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->string('password'); $table->rememberToken(); $table->timestamps(); });
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations Migrations Schema Illuminate\Support\Facades Connection Illuminate\Database Builder Illuminate\Database\Schema DB public function create($table, Closure $callback) { $this->build(tap( $this->createBlueprint($table), function ($blueprint) use ($callback) { $blueprint->create(); $callback($blueprint); })); } Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->string('password'); $table->rememberToken(); $table->timestamps(); });
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations Migrations Schema Illuminate\Support\Facades Connection Illuminate\Database Builder Illuminate\Database\Schema DB Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); public function create($table, Closure $callback) { $this->build(tap( $this->createBlueprint($table), function ($blueprint) use ($callback) { $blueprint->create(); $callback($blueprint); })); }
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations Migrations Schema Illuminate\Support\Facades Connection Illuminate\Database Builder Illuminate\Database\Schema DB Blueprint Illuminate\Database\Schema Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); public function create($table, Closure $callback) { $this->build(tap( $this->createBlueprint($table), function ($blueprint) use ($callback) { $blueprint->create(); $callback($blueprint); })); }
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations Migrations Schema Illuminate\Support\Facades Connection Illuminate\Database Builder Illuminate\Database\Schema DB Blueprint Illuminate\Database\Schema Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); public function create($table, Closure $callback) { $this->build(tap( $this->createBlueprint($table), function ($blueprint) use ($callback) { $blueprint->create(); $callback($blueprint); })); }
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 Migrations Grammar Illuminate\Database\Schema\Grammars Schema Illuminate\Support\Facades Connection Illuminate\Database Builder Illuminate\Database\Schema Blueprint Illuminate\Database\Schema DB MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 Migrations Grammar Illuminate\Database\Schema\Grammars Schema Illuminate\Support\Facades Connection Illuminate\Database Builder Illuminate\Database\Schema Blueprint Illuminate\Database\Schema DB MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 QueryBuilder MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 DB::table('users') ->select('id', 'name') ->get(); QueryBuilder MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 QueryBuilder Grammar Illuminate\Database\Schema\Grammars DB Illuminate\Support\Facades Connection Illuminate\Database Builder Illuminate\Database\Schema Processor Illuminate\Database\Schema\Processors DB DB::table('users') ->select('id', 'name') ->get(); MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations QueryBuilder Grammar Illuminate\Database\Schema\Grammars DB Illuminate\Support\Facades Connection Illuminate\Database Builder Illuminate\Database\Schema Processor Illuminate\Database\Schema\Processors DB DB::table('users') ->select('id', 'name') ->get(); public function table($table) { return $this->query() ->from($table); }
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations QueryBuilder Grammar Illuminate\Database\Schema\Grammars DB Illuminate\Support\Facades Connection Illuminate\Database Builder Illuminate\Database\Schema Processor Illuminate\Database\Schema\Processors DB DB::table('users') ->select('id', 'name') ->get(); public function table($table) { return $this->query() ->from($table); }
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations QueryBuilder Grammar Illuminate\Database\Schema\Grammars DB Illuminate\Support\Facades Connection Illuminate\Database Builder Illuminate\Database\Schema Processor Illuminate\Database\Schema\Processors DB DB::table('users') ->select('id', 'name') ->get(); public function query() { return new QueryBuilder( $this, $this->getQueryGrammar(), $this->getPostProcessor() ); }
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 QueryBuilder Grammar Illuminate\Database\Schema\Grammars DB Illuminate\Support\Facades Connection Illuminate\Database Builder Illuminate\Database\Schema Processor Illuminate\Database\Schema\Processors DB DB::table('users') ->select('id', 'name') ->get(); MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations public function table($table) { return $this->query() ->from($table); }
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations QueryBuilder Grammar Illuminate\Database\Schema\Grammars DB Illuminate\Support\Facades Connection Illuminate\Database Builder Illuminate\Database\Schema Processor Illuminate\Database\Schema\Processors DB public function select($columns = ['*']) { $this->columns = is_array($columns) ? $columns : func_get_args(); return $this; } DB::table('users') ->select('id', 'name') ->get();
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations QueryBuilder Grammar Illuminate\Database\Schema\Grammars DB Illuminate\Support\Facades Connection Illuminate\Database Builder Illuminate\Database\Schema Processor Illuminate\Database\Schema\Processors DB protected function runSelect() { return $this->connection->select( $this->toSql(), $this->getBindings(), !$this->useWritePdo ); } DB::table('users') ->select('id', 'name') ->get();
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 QueryBuilder Grammar Illuminate\Database\Schema\Grammars DB Illuminate\Support\Facades Connection Illuminate\Database Builder Illuminate\Database\Schema Processor Illuminate\Database\Schema\Processors DB DB::table('users') ->select('id', 'name') ->get(); MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations protected function runSelect() { return $this->connection->select( $this->toSql(), $this->getBindings(), !$this->useWritePdo ); }
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations QueryBuilder Grammar Illuminate\Database\Schema\Grammars DB Illuminate\Support\Facades Connection Illuminate\Database Builder Illuminate\Database\Schema Processor Illuminate\Database\Schema\Processors DB public function toSql() { return $this->grammar ->compileSelect($this); } DB::table('users') ->select('id', 'name') ->get();
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 QueryBuilder Grammar Illuminate\Database\Schema\Grammars DB Illuminate\Support\Facades Connection Illuminate\Database Builder Illuminate\Database\Schema Processor Illuminate\Database\Schema\Processors DB DB::table('users') ->select('id', 'name') ->get(); MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations protected function runSelect() { return $this->connection->select( $this->toSql(), $this->getBindings(), !$this->useWritePdo ); }
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 How To Create Own Driver ? MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations DBMaker ??? ???
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 Laravel Migrations MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations Grammar Illuminate\Database\Schema\Grammars Schema Illuminate\Support\Facades Connection Illuminate\Database Builder Illuminate\Database\Schema Blueprint Illuminate\Database\Schema DB
墨墨嗓 (陳佑⽵竹) / 2017.07.01 LaravelConf Taiwan 2017 Laravel QueryBuilder Grammar Illuminate\Database\Schema\Grammars DB Illuminate\Support\Facades Connection Illuminate\Database Builder Illuminate\Database\Schema Processor Illuminate\Database\Schema\Processors DB MySQL SQLite PostgreSQL SQL Server Laravel Model Application Code DB Exec SQL Call Result Result Eloquent Model Query Builder DB Connection (PHP Data Objects) Migrations