A few weeks ago I released a package called db-dumper. The package can dump the structure and contents of a database to a file. Here's how it can be used:
Spatie\DbDumper\Databases\MySql::create() ->setDbName($databaseName) ->setUserName($userName) ->setPassword($password) ->dumpToFile('dump.sql');
Behind the scenes
mysqldump is used, so make sure it is installed on your system.
Currently only the dumping of MySQL databases is supported, but I'm accepting PR's that add support for other databases.
This package will be used by version 3 of the laravel-backup package which will be released somewhere in March.