2015-03-02 20:40:29 +00:00
|
|
|
<?php
|
|
|
|
|
2019-01-20 01:52:57 +00:00
|
|
|
namespace App\DataFixtures\ORM;
|
2015-03-02 20:40:29 +00:00
|
|
|
|
2019-01-20 02:50:09 +00:00
|
|
|
use Doctrine\Bundle\FixturesBundle\Fixture;
|
2015-03-02 20:40:29 +00:00
|
|
|
use Doctrine\Common\Persistence\ObjectManager;
|
|
|
|
use Symfony\Component\Finder\Finder;
|
2019-01-20 01:52:57 +00:00
|
|
|
use App\Entity\Language;
|
2015-03-02 20:40:29 +00:00
|
|
|
|
2019-01-20 02:50:09 +00:00
|
|
|
class LoadLanguages extends Fixture
|
2015-03-02 20:40:29 +00:00
|
|
|
{
|
2019-01-20 02:50:09 +00:00
|
|
|
/** @var string */
|
|
|
|
private $projectDir;
|
|
|
|
|
|
|
|
public function __construct(string $projectDir)
|
2015-03-02 20:40:29 +00:00
|
|
|
{
|
2019-01-20 02:50:09 +00:00
|
|
|
$this->projectDir = $projectDir;
|
2015-03-02 20:40:29 +00:00
|
|
|
}
|
2019-01-20 02:50:09 +00:00
|
|
|
|
2015-03-02 20:40:29 +00:00
|
|
|
public function load(ObjectManager $manager)
|
|
|
|
{
|
2019-01-20 02:50:09 +00:00
|
|
|
$geshiPath = $this->projectDir.'/vendor/theodordiaconu/geshi/src/GeSHi/geshi';
|
|
|
|
|
2015-03-02 20:40:29 +00:00
|
|
|
$finder = new Finder();
|
|
|
|
$finder->files()->in($geshiPath);
|
2019-01-20 02:50:09 +00:00
|
|
|
|
2015-03-02 20:40:29 +00:00
|
|
|
// Fix constants
|
|
|
|
define('GESHI_CAPS_NO_CHANGE', true);
|
|
|
|
define('GESHI_COMMENTS', true);
|
|
|
|
define('GESHI_NEVER', true);
|
|
|
|
define('GESHI_SEARCH', true);
|
|
|
|
define('GESHI_REPLACE', true);
|
|
|
|
define('GESHI_MODIFIERS', true);
|
|
|
|
define('GESHI_BEFORE', true);
|
|
|
|
define('GESHI_AFTER', true);
|
|
|
|
define('GESHI_MAYBE', true);
|
|
|
|
define('GESHI_NUMBER_INT_BASIC', true);
|
|
|
|
define('GESHI_NUMBER_HEX_PREFIX_DOLLAR', true);
|
|
|
|
define('GESHI_NUMBER_BIN_PREFIX_PERCENT', true);
|
|
|
|
define('GESHI_NUMBER_FLT_NONSCI', true);
|
|
|
|
define('GESHI_NUMBER_HEX_PREFIX', true);
|
|
|
|
define('GESHI_NUMBER_FLT_SCI_ZERO', true);
|
|
|
|
define('GESHI_NUMBER_OCT_PREFIX', true);
|
|
|
|
define('GESHI_ALWAYS', true);
|
|
|
|
define('GESHI_CAPS_UPPER', true);
|
|
|
|
define('GESHI_NUMBER_FLT_NONSCI_F', true);
|
|
|
|
define('GESHI_NUMBER_FLT_SCI_SHORT', true);
|
|
|
|
define('GESHI_NUMBER_HEX_SUFFIX', true);
|
|
|
|
define('GESHI_NUMBER_INT_CSTYLE', true);
|
|
|
|
define('GESHI_NUMBER_BIN_PREFIX_0B', true);
|
|
|
|
define('GESHI_NUMBER_BIN_SUFFIX', true);
|
|
|
|
define('GESHI_NUMBER_OCT_SUFFIX', true);
|
|
|
|
define('GESHI_CLASS', true);
|
|
|
|
define('GESHI_NUMBER_OCT_PREFIX_0O', true);
|
|
|
|
define('GESHI_NUMBER_OCT_PREFIX_AT', true);
|
2019-01-20 02:50:09 +00:00
|
|
|
|
|
|
|
/* @var $file \SplFileInfo */
|
2015-03-02 20:40:29 +00:00
|
|
|
foreach ($finder as $file) {
|
2019-01-19 18:45:22 +00:00
|
|
|
include $geshiPath.DIRECTORY_SEPARATOR.$file->getRelativePathname();
|
2019-01-20 02:50:09 +00:00
|
|
|
|
|
|
|
$language = new Language(
|
|
|
|
$language_data['LANG_NAME'],
|
|
|
|
basename($file->getRelativePathname(), '.php')
|
|
|
|
);
|
|
|
|
|
2015-03-02 20:40:29 +00:00
|
|
|
$manager->persist($language);
|
|
|
|
}
|
2019-01-20 02:50:09 +00:00
|
|
|
|
|
|
|
$manager->flush();
|
2015-03-02 20:40:29 +00:00
|
|
|
}
|
|
|
|
}
|