Seeder is a TYPO3 Extension that generates fake data for your TYPO3 Extension. Its intended for developers only!!! This Version is an experimental version!
The recommended way to install seeder is by using composer.
- Get seeder by running
composer require tildbj/seeder
- Activate seeder in your Extension Manager
Faker requires fzaninotto/faker. If you install seeder via Extensionmanager it's up to you to install fzaninotto/faker yourself.
Create a class wherever you want. Only make sure it's available via autoloader. Your class should look like this:
<?php
namespace TildBJ\Seeder\Seeder;
use TildBJ\Seeder;
class Example extends \TildBJ\Seeder\Seeder\DatabaseSeeder
{
public function run()
{
$this->factory->create('tx_myextension_domain_model_mymodel')->each(function (Seeder\Seed $seed, Seeder\Faker $faker) {
$seed->set(
array (
'pid' => 1,
'sys_language_uid' => 0,
'hidden' => 0,
'title' => $faker->getTitle(),
'description' => $faker->getText(),
'relation' => $this->call(\TildBJ\Seeder\Seeder\RelationExample::class),
'fal_image' => $this->call(\TildBJ\Seeder\Seeder\Image::class),
)
);
});
}
}
Add column information to your seed by passing an array to $seed->set([//your columns])
.
It's mandatory to provide the pid information, otherwise seeder is not able to generate any data.
It's also possible to create a class via cli. Just execute the following command:
/path/to/typo3/cli_dispatch.phpsh extbase seeder:make --class-name=Example --table-name=tx_myextension_domain_model_mymodel
Attention: This command creates a seed within the directory Classes/Seeder. It's recommended to move this class outside this extensions otherwise it could get lost after an extension update.
/path/to/typo3/cli_dispatch.phpsh extbase seeder:seed \\Vendor\\Seeder\\Seeder\\Example
Create an alias in ext_localconf.php ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['seeder']['alias']['myseed'] = \TildBJ\Seeder\Seeder\Example::class;)
for running seed like this:
/path/to/typo3/cli_dispatch.phpsh extbase seeder:seed myseed
Contribution guidelines for this project
0.3.1 | Fix wrong vendorname in ext_emconf.php |
0.3.0 | * Fixes a Bug with wrong amount of relations * Feature: Possibility to configer the locale * Defined a more unique vendor name |
0.2.2 | * Possibility to choose between creating new data and get date which is created just now * Bugfix with recursive call |
0.2.1 | * Images will be created with a more unique filename so we don't have duplicates anymore |
0.2.0 | * Seeds can now be available in custom namespaces * You can register own provider by extending global array in ext_localconf.php * When generating seeds cli won't ask for a fieldtype for every field * Update 3rd party extension * Several Bugfixes |
0.1.4 | Don't return empty properties |
0.1.3 | * Don't override Properties anymore when calling subseeds * Removes a Bug which leads to exponentially seeder calls * Don't instanciate abstract class, if field is called abstract * Add output decorator * Always ask for a pid even if there is no TCA configuration |
0.1.2 | Add TYPO3 8.7 support |
0.1.1 | Skip start and enddate because usually we don't want to test a typo3 core feature so each record will be available in frontend |
0.1.0 | First experimental release |
Seeder does not create any data. What am i doing wrong?
- Make sure your seed has a pid that exists in your TYPO3 installation. Otherwise the extension is not able to generate any data.
- Checkout the Logmodule in the TYPO3 backend if there is any SQL error. It can help a lot to detect wrong configuration of your seed.
Feel free to ask your questions on Slack
Seeder is released under GNU General Public License, version 3 or later. See the bundled LICENSE file for details.