1
0
mirror of https://github.com/ToxicCrack/PrintABrick.git synced 2025-05-16 12:20:09 -07:00

Refactor code into bundles

This commit is contained in:
Unknown 2017-06-21 22:20:51 +02:00
parent ba979c50c7
commit 3e8da890c4
108 changed files with 340 additions and 309 deletions

View File

@ -16,6 +16,8 @@ class AppKernel extends Kernel
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
new AppBundle\AppBundle(),
new LoaderBundle\LoaderBundle(),
new FrontBundle\FrontBundle(),
new Knp\Bundle\MenuBundle\KnpMenuBundle(),
new Oneup\FlysystemBundle\OneupFlysystemBundle(),
new Knp\Bundle\PaginatorBundle\KnpPaginatorBundle(),

View File

@ -43,28 +43,28 @@
{% endif %}
</td>
</tr>
{% if apiPart %}
<tr>
<td>{{ 'part.alternates' | trans }}</td>
<td>
{% for alternate in apiPart.alternates %}
<a href="{{ url('part_detail', {'id': alternate})}}">{{ alternate }}</a>
{% endfor %}
</td>
</tr>
<tr>
<td>{{ 'part.molds' | trans }}</td>
<td>
{% for mold in apiPart.molds %}
<a href="{{ url('part_detail', {'id': mold})}}">{{ mold }}</a>
{% endfor %}
</td>
</tr>
<tr>
<td></td>
<td><a class="rebrickable link" href="{{ apiPart.url }}">Rebrickable</a></td>
</tr>
{% endif %}
{#{% if apiPart %}#}
{#<tr>#}
{#<td>{{ 'part.alternates' | trans }}</td>#}
{#<td>#}
{#{% for alternate in apiPart.alternates %}#}
{#<a href="{{ url('part_detail', {'id': alternate})}}">{{ alternate }}</a>#}
{#{% endfor %}#}
{#</td>#}
{#</tr>#}
{#<tr>#}
{#<td>{{ 'part.molds' | trans }}</td>#}
{#<td>#}
{#{% for mold in apiPart.molds %}#}
{#<a href="{{ url('part_detail', {'id': mold})}}">{{ mold }}</a>#}
{#{% endfor %}#}
{#</td>#}
{#</tr>#}
{#<tr>#}
{#<td></td>#}
{#<td><a class="rebrickable link" href="{{ apiPart.url }}">Rebrickable</a></td>#}
{#</tr>#}
{#{% endif %}#}
</table>
{% if not part.model %}

View File

@ -1,5 +1,5 @@
app:
resource: "@AppBundle/Controller/"
resource: "@FrontBundle/Controller/"
type: annotation
_liip_imagine:
resource: "@LiipImagineBundle/Resources/config/routing.xml"

View File

@ -0,0 +1,50 @@
services:
_defaults:
# automatically injects dependencies in your services
autowire: true
# automatically registers your services as commands, event subscribers, etc.
autoconfigure: true
public: false
FrontBundle\:
resource: '../../../src/FrontBundle/*'
# controllers are imported separately to make sure they're public
# and have a tag that allows actions to type-hint services
FrontBundle\Controller\:
resource: '../../../src/FrontBundle/Controller'
public: true
tags: ['controller.service_arguments']
FrontBundle\Imagine\PartImageLoader:
tags:
- { name: liip_imagine.binary.loader, loader: part_image_loader }
FrontBundle\Imagine\SetImageLoader:
tags:
- { name: liip_imagine.binary.loader, loader: set_image_loader }
# KNP Menu
menu.builder.main:
class: FrontBundle\Menu\Builder
arguments: ['@knp_menu.factory', '@request_stack']
public: true
tags:
- { name: knp_menu.menu_builder, method: mainMenu, alias: mainMenu }
Knp\Menu\FactoryInterface:
alias: knp_menu.factory
# Twig
FrontBundle\Twig\AppExtension:
arguments:
$webDir: "%kernel.root_dir%/../web"
tags:
- { name: twig.extension }

View File

@ -1,29 +1,6 @@
services:
# service.set: '@AppBundle\Service\SetService'
# service.zip: '@AppBundle\Service\ZipService'
# service.model: '@AppBundle\Service\ModelService'
# service.stl.fixer: '@AppBundle\Service\Stl\StlFixerService'
# service.stl.converter: '@AppBundle\Service\Stl\StlConverterService'
# service.stl.renderer: '@AppBundle\Service\Stl\StlRendererService'
#
# app.part_image_loader: '@AppBundle\Imagine\PartImageLoader'
# app.set_image_loader: '@AppBundle\Imagine\SetImageLoader'
#
# app.transformer.format: '@AppBundle\Transformer\FormatTransformer'
# app.relation.mapper: '@AppBundle\Util\RelationMapper'
#
service.loader.base: '@AppBundle\Service\Loader\BaseLoader'
service.loader.rebrickable: '@AppBundle\Service\Loader\RebrickableLoader'
service.loader.model: '@AppBundle\Service\Loader\ModelLoader'
service.loader.relation: '@AppBundle\Service\Loader\RelationLoader'
service.loader.image: '@AppBundle\Service\Loader\ImageLoader'
# form.search.model: '@AppBundle\Form\Search\ModelSearchType'
# form.search.set: '@AppBundle\Form\Search\SetSearchType'
#
# api.manager.rebrickable: '@AppBundle\Api\Manager\RebrickableManager'
# api.manager.brickset: '@AppBundle\Api\Manager\BricksetManager'
# api.client.rebrickable: '@AppBundle\Api\Client\Rebrickable\RebrickableClient'
# api.client.brickset: '@AppBundle\Api\Client\Brickset\BricksetClient'
# knp_menu.factory: Knp\Menu\FactoryInterface
service.loader.base: '@LoaderBundle\Service\BaseLoader'
service.loader.rebrickable: '@LoaderBundle\Service\RebrickableLoader'
service.loader.model: '@LoaderBundle\Service\ModelLoader'
service.loader.relation: '@LoaderBundle\Service\RelationLoader'
service.loader.image: '@LoaderBundle\Service\ImageLoader'

View File

@ -0,0 +1,51 @@
services:
_defaults:
# automatically injects dependencies in your services
autowire: true
# automatically registers your services as commands, event subscribers, etc.
autoconfigure: true
public: false
LoaderBundle\:
resource: '../../../src/LoaderBundle/*'
exclude: '../../../src/LoaderBundle/{Exception}'
LoaderBundle\Service\Stl\StlRendererService:
arguments:
$layout: '%kernel.root_dir%/Resources/povray_layout/layout.tmpl'
$povray: '%povray_bin%'
$stl2pov: '%stl2pov_bin%'
LoaderBundle\Service\Stl\StlConverterService:
arguments:
$ldview: '%ldview_bin%'
LoaderBundle\Service\Stl\StlFixerService:
arguments:
$ADMesh: '%admesh_bin%'
LoaderBundle\Service\BaseLoader:
abstract: true
LoaderBundle\Service\ModelLoader:
arguments:
$logger: '@monolog.logger.loader'
LoaderBundle\Service\RebrickableLoader:
arguments:
$rebrickableDownloadUrl: '%app.rebrickable_downloads_url%'
$logger: '@monolog.logger.loader'
LoaderBundle\Service\ImageLoader:
arguments:
$rebrickableDownloadUrl: '%app.rebrickable_downloads_url%'
$logger: '@monolog.logger.loader'
LoaderBundle\Util\RelationMapper:
arguments:
- '@app.relations.cache_provider'
calls:
- [ loadResource, ['%kernel.root_dir%/Resources/relations/part_model.yml', 'part_model']]
- [ loadResource, ['%kernel.root_dir%/Resources/relations/alias_model.yml', 'alias_model']]

View File

@ -1 +0,0 @@
services:

View File

@ -1,9 +1,9 @@
imports:
- { resource: service/legacy_aliases.yml }
- { resource: service/menu.yml }
- { resource: service/front.yml }
- { resource: service/loader.yml }
services:
# default configuration for services in *this* file
_defaults:
# automatically injects dependencies in your services
autowire: true
@ -11,66 +11,13 @@ services:
autoconfigure: true
public: false
# makes classes in src/AppBundle available to be used as services
# this creates a service per class whose id is the fully-qualified class name
AppBundle\:
resource: '../../src/AppBundle/*'
exclude: '../../src/AppBundle/{Entity,Repository,Exception,Api}'
# controllers are imported separately to make sure they're public
# and have a tag that allows actions to type-hint services
AppBundle\Controller\:
resource: '../../src/AppBundle/Controller'
public: true
tags: ['controller.service_arguments']
app.relations.cache_provider:
class: Doctrine\Common\Cache\ArrayCache
# STL
AppBundle\Service\Stl\StlRendererService:
arguments:
$layout: '%kernel.root_dir%/Resources/povray_layout/layout.tmpl'
$povray: '%povray_bin%'
$stl2pov: '%stl2pov_bin%'
AppBundle\Service\Stl\StlConverterService:
arguments:
$ldview: '%ldview_bin%'
AppBundle\Service\Stl\StlFixerService:
arguments:
$ADMesh: '%admesh_bin%'
# Loaders
AppBundle\Service\Loader\BaseLoader:
abstract: true
AppBundle\Service\Loader\ModelLoader:
arguments:
$logger: '@monolog.logger.loader'
AppBundle\Service\Loader\RebrickableLoader:
arguments:
$rebrickableDownloadUrl: '%app.rebrickable_downloads_url%'
$logger: '@monolog.logger.loader'
AppBundle\Service\Loader\ImageLoader:
arguments:
$rebrickableDownloadUrl: '%app.rebrickable_downloads_url%'
$logger: '@monolog.logger.loader'
AppBundle\Util\RelationMapper:
arguments:
- '@app.relations.cache_provider'
calls:
- [ loadResource, ['%kernel.root_dir%/Resources/relations/part_model.yml', 'part_model']]
- [ loadResource, ['%kernel.root_dir%/Resources/relations/alias_model.yml', 'alias_model']]
# API
app.brickset.cache_provider:
class: Doctrine\Common\Cache\PhpFileCache
arguments: ["%kernel.cache_dir%/brickset", ".cache.php"]
@ -90,44 +37,12 @@ services:
$cache: '@app.brickset.cache_provider'
# Imagine
AppBundle\Imagine\PartImageLoader:
tags:
- { name: liip_imagine.binary.loader, loader: part_image_loader }
AppBundle\Imagine\SetImageLoader:
tags:
- { name: liip_imagine.binary.loader, loader: set_image_loader }
# KNP Menu
menu.builder.main:
class: AppBundle\Menu\Builder
arguments: ['@knp_menu.factory', '@request_stack']
public: true
tags:
- { name: knp_menu.menu_builder, method: mainMenu, alias: mainMenu }
Knp\Menu\FactoryInterface:
alias: knp_menu.factory
# Filesystem
League\Flysystem\FilesystemInterface:
alias: oneup_flysystem.media_filesystem
# Twig
AppBundle\Twig\AppExtension:
arguments:
$webDir: "%kernel.root_dir%/../web"
tags:
- { name: twig.extension }
# ElasticSearch
FOS\ElasticaBundle\Manager\RepositoryManagerInterface:

View File

@ -136,6 +136,7 @@ class Color
/**
* @param Inventory_Part $inventoryPart
*
* @return Color
*/
public function addPartInventoryPart(Inventory_Part $inventoryPart)

View File

@ -20,6 +20,7 @@ class SubpartRepository extends BaseRepository
* @param $child
* @param $count
* @param $colorId
*
* @return Subpart
*/
public function getOrCreate($parent, $child, $count, $colorId)

View File

@ -13,6 +13,7 @@ class ColorService
/**
* ColorService constructor.
*
* @param EntityManagerInterface $em
*/
public function __construct(EntityManagerInterface $em)

View File

@ -30,7 +30,7 @@ class ModelService
*
* @return Model|null
*/
public function findModel($id)
public function find($id)
{
return $this->modelRepository->findOneByNumber($id);
}

View File

@ -2,7 +2,6 @@
namespace AppBundle\Service;
use AppBundle\Entity\LDraw\Model;
use AppBundle\Entity\Rebrickable\Set;
use AppBundle\Model\ModelSearch;
@ -22,6 +21,7 @@ class SearchService
/**
* SearchService constructor.
*
* @param RepositoryManagerInterface $repositoryManager
*/
public function __construct(RepositoryManagerInterface $repositoryManager)
@ -30,70 +30,81 @@ class SearchService
$this->setRepository = $repositoryManager->getRepository(Set::class);
}
/**
* Find matching sets by query
* Find matching sets by query.
*
* @param $query
* @param int $limit
*
* @return array
*/
public function searchSetsByQuery($query, $limit = 1000) {
public function searchSetsByQuery($query, $limit = 1000)
{
return $this->setRepository->search(new SetSearch($query), $limit);
}
/**
* Find matching sets by query with highlights
* Find matching sets by query with highlights.
*
* @param $query
* @param int $limit
*
* @return HybridResult[]
*/
public function searchSetsHighlightedByQuery($query, $limit = 4) {
public function searchSetsHighlightedByQuery($query, $limit = 4)
{
return $this->setRepository->findHighlighted($query, $limit);
}
/**
* Find matching sets by rules in SetSearch class
* Find matching sets by rules in SetSearch class.
*
* @param SetSearch $setSearch
* @param int $limit
* @param int $limit
*
* @return array
*/
public function searchSets(SetSearch $setSearch, $limit = 1000) {
public function searchSets(SetSearch $setSearch, $limit = 1000)
{
return $this->setRepository->search($setSearch, $limit);
}
/**
* Find matching models by query
* Find matching models by query.
*
* @param $query
* @param int $limit
*
* @return array
*/
public function searchModelsByQuery($query, $limit = 1000) {
public function searchModelsByQuery($query, $limit = 1000)
{
return $this->modelRepository->search(new ModelSearch($query), $limit);
}
/**
* Find matching models by query with highlights
* Find matching models by query with highlights.
*
* @param $query
* @param int $limit
*
* @return HybridResult[]
*/
public function searchModelsHighlightedByQuery($query, $limit = 4) {
public function searchModelsHighlightedByQuery($query, $limit = 4)
{
return $this->modelRepository->findHighlighted($query, $limit);
}
/**
* Find matching models by rules in ModelSearch class
* Find matching models by rules in ModelSearch class.
*
* @param ModelSearch $modelSearch
* @param int $limit
* @param int $limit
*
* @return array
*/
public function searchModels(ModelSearch $modelSearch, $limit = 1000) {
public function searchModels(ModelSearch $modelSearch, $limit = 1000)
{
return $this->modelRepository->search($modelSearch, $limit);
}
}
}

View File

@ -36,13 +36,13 @@ class SetService
}
/**
* Find set by id
* Find set by id.
*
* @param $id
*
* @return Set
* @return object
*/
public function findSet($id)
public function find($id)
{
return $this->setRepository->find($id);
}

View File

@ -30,9 +30,9 @@ class ZipService
/**
* ZipService constructor.
*
* @param FilesystemInterface $mediaFilesystem
* @param ModelService $modelService
* @param SetService $setService
* @param FilesystemInterface $mediaFilesystem
* @param ModelService $modelService
* @param SetService $setService
*/
public function __construct(FilesystemInterface $mediaFilesystem, ModelService $modelService, SetService $setService)
{

View File

@ -1,6 +1,6 @@
<?php
namespace AppBundle\Controller;
namespace FrontBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
@ -11,8 +11,10 @@ class AjaxController extends AbstractController
{
/**
* @Route("/set_tab/{tab}", name="set_tab", requirements={"tab"=".+"})
*
* @param Request $request
* @param $tab
*
* @return Response
*/
public function setDefaultTabAction(Request $request, $tab)

View File

@ -1,6 +1,6 @@
<?php
namespace AppBundle\Controller\Brickset;
namespace FrontBundle\Controller\Brickset;
use AppBundle\Api\Exception\ApiException;
use AppBundle\Api\Manager\BricksetManager;

View File

@ -1,6 +1,6 @@
<?php
namespace AppBundle\Controller;
namespace FrontBundle\Controller;
use AppBundle\Entity\Color;
use AppBundle\Service\ColorService;
@ -17,7 +17,9 @@ class ColorController extends AbstractController
{
/**
* @Route("/", name="color_index")
*
* @param ColorService $colorService
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function indexAction(ColorService $colorService)

View File

@ -1,6 +1,6 @@
<?php
namespace AppBundle\Controller;
namespace FrontBundle\Controller;
use AppBundle\Service\ModelService;
use AppBundle\Service\SetService;

View File

@ -1,8 +1,7 @@
<?php
namespace AppBundle\Controller;
namespace FrontBundle\Controller;
use League\Flysystem\Filesystem;
use League\Flysystem\FilesystemInterface;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\BinaryFileResponse;

View File

@ -1,15 +1,14 @@
<?php
namespace AppBundle\Controller;
namespace FrontBundle\Controller;
use AppBundle\Entity\LDraw\Model;
use AppBundle\Form\Search\ModelSearchType;
use AppBundle\Model\ModelSearch;
use AppBundle\Model\SetSearch;
use AppBundle\Service\ModelService;
use AppBundle\Service\SearchService;
use AppBundle\Service\SetService;
use AppBundle\Service\ZipService;
use FrontBundle\Form\Search\ModelSearchType;
use Knp\Component\Pager\Paginator;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
@ -42,7 +41,7 @@ class ModelController extends Controller
/** @var Paginator $paginator */
$paginator = $this->get('knp_paginator');
$models = $paginator->paginate(
$searchService->searchModels($modelSearch,500),
$searchService->searchModels($modelSearch, 500),
$request->query->getInt('page', 1)/*page number*/,
$request->query->getInt('limit', 30)/*limit per page*/
);
@ -61,7 +60,7 @@ class ModelController extends Controller
*/
public function detailAction($id, ModelService $modelService, SetService $setService)
{
if ($model = $modelService->findModel($id)) {
if ($model = $modelService->find($id)) {
try {
return $this->render('model/detail.html.twig', [
'model' => $model,

View File

@ -1,9 +1,7 @@
<?php
namespace AppBundle\Controller;
namespace FrontBundle\Controller;
use AppBundle\Api\Exception\EmptyResponseException;
use AppBundle\Api\Manager\RebrickableManager;
use AppBundle\Entity\Rebrickable\Part;
use AppBundle\Service\SetService;
use Knp\Component\Pager\Paginator;
@ -24,26 +22,16 @@ class PartController extends Controller
*
* @Route("/{id}", name="part_detail")
*/
public function detailAction(Part $part, RebrickableManager $rebrickableManager, SetService $setService)
public function detailAction(Part $part, SetService $setService)
{
$apiPart = null;
if ($part) {
if ($model = $part->getModel()) {
$this->redirectToRoute('model_detail', ['id' => $model->getId()]);
}
try {
$apiPart = $rebrickableManager->getPart($part->getId());
} catch (EmptyResponseException $e) {
$this->addFlash('warning', 'Part not found');
} catch (\Exception $e) {
$this->addFlash('error', $e->getMessage());
}
return $this->render('part/detail.html.twig', [
'part' => $part,
'apiPart' => $apiPart,
'setCount' => count($setService->getAllByPart($part))
'setCount' => count($setService->getAllByPart($part)),
]);
}

View File

@ -1,13 +1,7 @@
<?php
namespace AppBundle\Controller;
namespace FrontBundle\Controller;
use AppBundle\Entity\LDraw\Model;
use AppBundle\Entity\Rebrickable\Set;
use AppBundle\Model\ModelSearch;
use AppBundle\Model\SetSearch;
use AppBundle\Repository\Search\ModelRepository;
use AppBundle\Repository\Search\SetRepository;
use AppBundle\Service\SearchService;
use FOS\ElasticaBundle\HybridResult;
use Liip\ImagineBundle\Imagine\Cache\CacheManager;

View File

@ -1,16 +1,16 @@
<?php
namespace AppBundle\Controller;
namespace FrontBundle\Controller;
use AppBundle\Api\Exception\ApiException;
use AppBundle\Api\Manager\BricksetManager;
use AppBundle\Entity\Rebrickable\Set;
use AppBundle\Form\Search\SetSearchType;
use AppBundle\Model\SetSearch;
use AppBundle\Repository\Search\SetRepository;
use AppBundle\Service\SearchService;
use AppBundle\Service\SetService;
use AppBundle\Service\ZipService;
use Elastica\Index;
use FrontBundle\Form\Search\SetSearchType;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Form\FormFactoryInterface;

View File

@ -1,6 +1,6 @@
<?php
namespace AppBundle\Form;
namespace FrontBundle\Form;
use AppBundle\Model\NumberRange;
use Symfony\Component\Form\AbstractType;

View File

@ -1,6 +1,6 @@
<?php
namespace AppBundle\Form\Search;
namespace FrontBundle\Form\Search;
use AppBundle\Entity\LDraw\Category;
use AppBundle\Model\ModelSearch;

View File

@ -1,14 +1,14 @@
<?php
namespace AppBundle\Form\Search;
namespace FrontBundle\Form\Search;
use AppBundle\Entity\Rebrickable\Set;
use AppBundle\Entity\Rebrickable\Theme;
use AppBundle\Form\NumberRangeType;
use AppBundle\Model\SetSearch;
use AppBundle\Repository\Rebrickable\SetRepository;
use AppBundle\Repository\Rebrickable\ThemeRepository;
use Doctrine\ORM\EntityManagerInterface;
use FrontBundle\Form\NumberRangeType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\TextType;

View File

@ -0,0 +1,9 @@
<?php
namespace FrontBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class FrontBundle extends Bundle
{
}

View File

@ -1,6 +1,6 @@
<?php
namespace AppBundle\Imagine;
namespace FrontBundle\Imagine;
use Liip\ImagineBundle\Binary\Loader\LoaderInterface;

View File

@ -1,6 +1,6 @@
<?php
namespace AppBundle\Imagine;
namespace FrontBundle\Imagine;
use AppBundle\Api\Manager\RebrickableManager;
use League\Flysystem\Filesystem;

View File

@ -1,6 +1,6 @@
<?php
namespace AppBundle\Imagine;
namespace FrontBundle\Imagine;
use AppBundle\Api\Manager\BricksetManager;
use League\Flysystem\Filesystem;

View File

@ -1,6 +1,6 @@
<?php
namespace AppBundle\Menu;
namespace FrontBundle\Menu;
use Knp\Menu\FactoryInterface;
use Symfony\Component\HttpFoundation\RequestStack;

View File

@ -1,6 +1,6 @@
<?php
namespace AppBundle\Twig;
namespace FrontBundle\Twig;
use AppBundle\Transformer\FormatTransformer;

View File

@ -1,6 +1,6 @@
<?php
namespace AppBundle\Command;
namespace LoaderBundle\Command;
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Input\ArrayInput;
@ -54,7 +54,7 @@ class InitDataCommand extends ContainerAwareCommand
}
// Load images
$loadImagesCommand = $this->getApplication()->find('app:load:images');
$returnCode = $loadImagesCommand->run(new ArrayInput([
'command' => 'app:load:images',

View File

@ -1,8 +1,8 @@
<?php
namespace AppBundle\Command;
namespace LoaderBundle\Command;
use AppBundle\Service\Loader\ImageLoader;
use LoaderBundle\Service\ImageLoader;
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Input\InputDefinition;
use Symfony\Component\Console\Input\InputInterface;

View File

@ -1,8 +1,8 @@
<?php
namespace AppBundle\Command;
namespace LoaderBundle\Command;
use AppBundle\Service\Loader\ModelLoader;
use LoaderBundle\Service\ModelLoader;
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Command\LockableTrait;
use Symfony\Component\Console\Input\InputDefinition;

View File

@ -1,9 +1,9 @@
<?php
namespace AppBundle\Command;
namespace LoaderBundle\Command;
use AppBundle\Service\Loader\RebrickableLoader;
use League\Flysystem\Exception;
use LoaderBundle\Service\RebrickableLoader;
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Input\ArrayInput;
use Symfony\Component\Console\Input\InputInterface;

View File

@ -1,8 +1,8 @@
<?php
namespace AppBundle\Command;
namespace LoaderBundle\Command;
use AppBundle\Service\Loader\RelationLoader;
use LoaderBundle\Service\RelationLoader;
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Input\InputDefinition;
use Symfony\Component\Console\Input\InputInterface;

View File

@ -1,6 +1,6 @@
<?php
namespace AppBundle\Exception;
namespace LoaderBundle\Exception;
use Exception;

View File

@ -1,6 +1,6 @@
<?php
namespace AppBundle\Exception;
namespace LoaderBundle\Exception;
use Throwable;

View File

@ -1,6 +1,6 @@
<?php
namespace AppBundle\Exception;
namespace LoaderBundle\Exception;
use Throwable;

View File

@ -1,6 +1,6 @@
<?php
namespace AppBundle\Exception;
namespace LoaderBundle\Exception;
use Throwable;

View File

@ -1,6 +1,6 @@
<?php
namespace AppBundle\Exception\Loader;
namespace LoaderBundle\Exception\Loader;
use Symfony\Component\Form\Exception\LogicException;
use Throwable;

View File

@ -1,6 +1,6 @@
<?php
namespace AppBundle\Exception;
namespace LoaderBundle\Exception;
use Throwable;

View File

@ -1,6 +1,6 @@
<?php
namespace AppBundle\Exception\RelationMapper;
namespace LoaderBundle\Exception\RelationMapper;
class InvalidResourceException extends \LogicException
{

View File

@ -1,8 +1,8 @@
<?php
namespace AppBundle\Exception\RelationMapper;
namespace LoaderBundle\Exception\RelationMapper;
use AppBundle\Exception\FileException;
use LoaderBundle\Exception\FileException;
use Throwable;
class ResourceNotFoundException extends FileException

View File

@ -1,6 +1,6 @@
<?php
namespace AppBundle\Exception;
namespace LoaderBundle\Exception;
use Throwable;

View File

@ -1,6 +1,6 @@
<?php
namespace AppBundle\Exception\Stl;
namespace LoaderBundle\Exception\Stl;
use Symfony\Component\Form\Exception\LogicException;
use Throwable;

View File

@ -1,6 +1,6 @@
<?php
namespace AppBundle\Exception;
namespace LoaderBundle\Exception;
use Throwable;

View File

@ -0,0 +1,9 @@
<?php
namespace LoaderBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class LoaderBundle extends Bundle
{
}

View File

@ -1,12 +1,12 @@
<?php
namespace AppBundle\Service\Loader;
namespace LoaderBundle\Service;
use AppBundle\Exception\FileNotFoundException;
use AppBundle\Exception\WriteErrorException;
use AppBundle\Transformer\FormatTransformer;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\EntityManagerInterface;
use LoaderBundle\Exception\FileNotFoundException;
use LoaderBundle\Exception\WriteErrorException;
use Monolog\Logger;
use Psr\Log\LoggerInterface;
use Symfony\Component\Asset\Exception\LogicException;

View File

@ -1,11 +1,11 @@
<?php
namespace AppBundle\Service\Loader;
namespace LoaderBundle\Service;
use AppBundle\Entity\LDraw\Model;
use AppBundle\Service\Stl\StlRendererService;
use Doctrine\ORM\EntityManagerInterface;
use League\Flysystem\FilesystemInterface;
use LoaderBundle\Service\Stl\StlRendererService;
use Psr\Log\LoggerInterface;
class ImageLoader extends BaseLoader
@ -29,9 +29,9 @@ class ImageLoader extends BaseLoader
}
/**
* Download ZIP file with part images from rebrickable and unzip file to filesystem
* Download ZIP file with part images from rebrickable and unzip file to filesystem.
*
* @param integer $color color id used by rebrickable
* @param int $color color id used by rebrickable
*/
public function loadColorFromRebrickable($color)
{
@ -53,7 +53,7 @@ class ImageLoader extends BaseLoader
}
/**
* Load missing images of models
* Load missing images of models.
*/
public function loadMissingModelImages()
{
@ -70,7 +70,7 @@ class ImageLoader extends BaseLoader
// Render images
$this->output->writeln([
"Rendering missing images of models",
'Rendering missing images of models',
]);
$this->initProgressBar(count($missing));
foreach ($missing as $model) {
@ -88,7 +88,7 @@ class ImageLoader extends BaseLoader
}
/**
* Render model and save image into
* Render model and save image into.
*
* @param $file
*/

View File

@ -1,6 +1,6 @@
<?php
namespace AppBundle\Service\Loader;
namespace LoaderBundle\Service;
use AppBundle\Entity\LDraw\Alias;
use AppBundle\Entity\LDraw\Author;
@ -8,18 +8,18 @@ use AppBundle\Entity\LDraw\Category;
use AppBundle\Entity\LDraw\Keyword;
use AppBundle\Entity\LDraw\Model;
use AppBundle\Entity\LDraw\Subpart;
use AppBundle\Exception\ConvertingFailedException;
use AppBundle\Exception\FileException;
use AppBundle\Exception\Loader\MissingContextException;
use AppBundle\Exception\ParseErrorException;
use AppBundle\Repository\LDraw\ModelRepository;
use AppBundle\Service\Stl\StlConverterService;
use AppBundle\Util\LDModelParser;
use AppBundle\Util\RelationMapper;
use Doctrine\ORM\EntityManagerInterface;
use League\Flysystem\Adapter\Local;
use League\Flysystem\Exception;
use League\Flysystem\Filesystem;
use LoaderBundle\Exception\ConvertingFailedException;
use LoaderBundle\Exception\FileException;
use LoaderBundle\Exception\Loader\MissingContextException;
use LoaderBundle\Exception\ParseErrorException;
use LoaderBundle\Service\Stl\StlConverterService;
use LoaderBundle\Util\LDModelParser;
use LoaderBundle\Util\RelationMapper;
use Psr\Log\LoggerInterface;
class ModelLoader extends BaseLoader
@ -88,9 +88,10 @@ class ModelLoader extends BaseLoader
}
/**
* Download library form $url, unzip archive and return directory path with library
* Download library form $url, unzip archive and return directory path with library.
*
* @param $url
*
* @return bool|string
*/
public function downloadLibrary($url)
@ -120,7 +121,7 @@ class ModelLoader extends BaseLoader
$this->writeOutput(['<info>LDraw libary downloaded</info>']);
// return ldraw directory if in zip file
if(file_exists($temp_dir.'/ldraw/')) {
if (file_exists($temp_dir.'/ldraw/')) {
return $temp_dir.'/ldraw/';
}
@ -183,7 +184,7 @@ class ModelLoader extends BaseLoader
$this->loadModel($this->ldrawLibraryContext->getAdapter()->getPathPrefix().$file['path']);
// clear managed objects to avoid memory issues
if($index++ % 50 == 0) {
if ($index++ % 50 == 0) {
$this->em->clear();
}
$connection->commit();
@ -215,7 +216,7 @@ class ModelLoader extends BaseLoader
// Return model from database if rewrite is not enabled
if (!$this->rewrite && $model = $modelRepository->find(basename($file, '.dat'))) {
/** @var Model $model */
/* @var Model $model */
return $model;
}

View File

@ -1,6 +1,6 @@
<?php
namespace AppBundle\Service\Loader;
namespace LoaderBundle\Service;
use AppBundle\Entity\Rebrickable\Part;
use AppBundle\Entity\Rebrickable\Set;
@ -29,6 +29,11 @@ class RebrickableLoader extends BaseLoader
parent::__construct($em, $logger);
}
/**
* Truncates and loads all rebrickable tables from csv files
*
* @throws \Exception
*/
public function loadAll()
{
$connection = $this->em->getConnection();
@ -62,11 +67,16 @@ class RebrickableLoader extends BaseLoader
$this->writeOutput(['Rebrickable database loaded successfully!']);
} catch (\Exception $e) {
$this->writeOutput(['Rollback back']);
$connection->rollBack();
throw $e;
}
}
/**
* Downloads csv files from rebrickable_url specified in config.yml
*/
private function loadCSVFiles()
{
$array = ['inventories', 'inventory_parts', 'inventory_sets', 'sets', 'themes', 'parts', 'part_categories', 'colors'];
@ -84,21 +94,33 @@ class RebrickableLoader extends BaseLoader
$this->writeOutput(['<info>All CSV files loaded.</info>']);
}
/**
* Truncate content of rebrickable tables.
*
* @return bool
*/
private function truncateTables()
{
$query = '
TRUNCATE TABLE rebrickable_inventory_parts;
TRUNCATE TABLE rebrickable_inventory_sets;
TRUNCATE TABLE rebrickable_inventory;
TRUNCATE TABLE rebrickable_set;
TRUNCATE TABLE rebrickable_theme;
TRUNCATE TABLE rebrickable_part;
TRUNCATE TABLE rebrickable_category;
DELETE FROM rebrickable_inventory_parts;
DELETE FROM rebrickable_inventory_sets;
DELETE FROM rebrickable_inventory;
DELETE FROM rebrickable_set;
DELETE FROM rebrickable_theme;
DELETE FROM rebrickable_part;
DELETE FROM rebrickable_category;
';
return $this->em->getConnection()->prepare($query)->execute();
}
/**
* @param $file
* @param $table
* @param $columns
*
* @return bool
*/
private function loadCsvFile($file, $table, $columns)
{
$query = sprintf("LOAD DATA LOCAL INFILE '%s'

View File

@ -1,13 +1,13 @@
<?php
namespace AppBundle\Service\Loader;
namespace LoaderBundle\Service;
use AppBundle\Entity\LDraw\Model;
use AppBundle\Entity\Rebrickable\Part;
use AppBundle\Repository\LDraw\ModelRepository;
use AppBundle\Repository\Rebrickable\PartRepository;
use AppBundle\Util\RelationMapper;
use Doctrine\ORM\EntityManagerInterface;
use LoaderBundle\Util\RelationMapper;
use Psr\Log\LoggerInterface;
class RelationLoader extends BaseLoader
@ -90,6 +90,7 @@ class RelationLoader extends BaseLoader
$model = $this->modelRepository->findOneByName($part->getName());
}
}
return $model;
}

View File

@ -1,12 +1,12 @@
<?php
namespace AppBundle\Service\Stl;
namespace LoaderBundle\Service\Stl;
use AppBundle\Exception\ConvertingFailedException;
use AppBundle\Exception\Stl\LDLibraryMissingException;
use League\Flysystem\File;
use League\Flysystem\Filesystem;
use League\Flysystem\FilesystemInterface;
use LoaderBundle\Exception\ConvertingFailedException;
use LoaderBundle\Exception\Stl\LDLibraryMissingException;
use Symfony\Component\Process\Exception\ProcessFailedException;
use Symfony\Component\Process\ProcessBuilder;

View File

@ -1,8 +1,8 @@
<?php
namespace AppBundle\Service\Stl;
namespace LoaderBundle\Service\Stl;
use AppBundle\Exception\FileNotFoundException;
use LoaderBundle\Exception\FileNotFoundException;
use Symfony\Component\Process\Exception\ProcessFailedException;
use Symfony\Component\Process\ProcessBuilder;

View File

@ -1,10 +1,10 @@
<?php
namespace AppBundle\Service\Stl;
namespace LoaderBundle\Service\Stl;
use AppBundle\Exception\ConvertingFailedException;
use AppBundle\Exception\FileNotFoundException;
use AppBundle\Exception\RenderFailedException;
use LoaderBundle\Exception\ConvertingFailedException;
use LoaderBundle\Exception\FileNotFoundException;
use LoaderBundle\Exception\RenderFailedException;
use Symfony\Component\Process\Process;
use Symfony\Component\Process\ProcessBuilder;

View File

@ -1,8 +1,8 @@
<?php
namespace AppBundle\Util;
namespace LoaderBundle\Util;
use AppBundle\Exception\ErrorParsingLineException;
use LoaderBundle\Exception\ErrorParsingLineException;
class LDModelParser
{
@ -28,8 +28,10 @@ class LDModelParser
* LDraw.org Standards: Official Library Header Specification (http://www.ldraw.org/article/398.html)
*
* @param $string
* @return array
*
* @throws ErrorParsingLineException
*
* @return array
*/
public function parse($string)
{

View File

@ -1,10 +1,10 @@
<?php
namespace AppBundle\Util;
namespace LoaderBundle\Util;
use AppBundle\Exception\RelationMapper\InvalidResourceException;
use AppBundle\Exception\RelationMapper\ResourceNotFoundException;
use Doctrine\Common\Cache\CacheProvider;
use LoaderBundle\Exception\RelationMapper\InvalidResourceException;
use LoaderBundle\Exception\RelationMapper\ResourceNotFoundException;
use Symfony\Component\OptionsResolver\Exception\InvalidArgumentException;
use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException;
use Symfony\Component\Yaml\Exception\ParseException;
@ -19,6 +19,7 @@ class RelationMapper
/**
* RelationMapper constructor.
*
* @param CacheProvider $cache
*/
public function __construct(CacheProvider $cache)
@ -26,7 +27,6 @@ class RelationMapper
$this->cache = $cache;
}
/**
* Adds a Resource.
*
@ -43,7 +43,7 @@ class RelationMapper
try {
if (!$data = unserialize($this->cache->fetch($domain))) {
$data = Yaml::parse(file_get_contents($file),yaml::PARSE_KEYS_AS_STRINGS);
$data = Yaml::parse(file_get_contents($file), yaml::PARSE_KEYS_AS_STRINGS);
$this->cache->save($domain, serialize($data), 60);
}

View File

@ -2,7 +2,6 @@
namespace Tests\AppBundle\Fixtures;
use AppBundle\Entity\Color;
use AppBundle\Entity\LDraw\Author;
use AppBundle\Entity\LDraw\Model;

View File

@ -30,7 +30,7 @@ class ZipServiceTest extends BaseTest
$this->modelService = $this->get(ModelService::class);
$this->setService = $this->get(SetService::class);
$this->filesystem->write('models/1.stl',file_get_contents(__DIR__.'/../Fixtures/models/1.stl'));
$this->filesystem->write('models/1.stl',file_get_contents(__DIR__ . '/../Fixtures/models/1.stl'));
$this->zipService = new ZipService($this->filesystem,$this->modelService,$this->setService);
}
@ -42,7 +42,7 @@ class ZipServiceTest extends BaseTest
public function testModelZip()
{
$model = $this->modelService->findModel(1);
$model = $this->modelService->find(1);
$path = $this->zipService->createFromModel($model, 'modelzip');
@ -51,7 +51,7 @@ class ZipServiceTest extends BaseTest
public function testSetZip()
{
$set = $this->setService->findSet('8049-1');
$set = $this->setService->find('8049-1');
$path = $this->zipService->createFromSet($set, 'setzip');

View File

@ -1,8 +1,8 @@
<?php
namespace Tests\AppBundle;
namespace Tests\FrontBundle;
use Tests\AppBundle\Controller\BaseControllerTest;
use Tests\FrontBundle\Controller\BaseControllerTest;
class ApplicationAvailabilityTest extends BaseControllerTest
{

View File

@ -1,6 +1,6 @@
<?php
namespace Tests\AppBundle\Controller;
namespace Tests\FrontBundle\Controller;
use Liip\FunctionalTestBundle\Test\WebTestCase;
use Tests\AppBundle\Fixtures\LoadBaseData;

View File

@ -1,14 +1,14 @@
<?php
namespace Tests\AppBundle\Service\Loader\ModelLoader;
namespace Tests\LoaderBundle\Service\ModelLoader;
use AppBundle\Entity\LDraw\Alias;
use AppBundle\Entity\LDraw\Model;
use AppBundle\Repository\LDraw\AliasRepository;
use AppBundle\Repository\LDraw\ModelRepository;
use AppBundle\Service\Loader\ModelLoader;
use AppBundle\Service\Stl\StlConverterService;
use AppBundle\Util\RelationMapper;
use LoaderBundle\Service\ModelLoader;
use LoaderBundle\Service\Stl\StlConverterService;
use LoaderBundle\Util\RelationMapper;
use League\Flysystem\File;
use League\Flysystem\Filesystem;
use Symfony\Component\Console\Output\NullOutput;

View File

@ -2,8 +2,8 @@
namespace Tests\AppBundle\Service\Stl;
use AppBundle\Service\Stl\StlConverterService;
use AppBundle\Service\Stl\StlFixerService;
use LoaderBundle\Service\Stl\StlConverterService;
use LoaderBundle\Service\Stl\StlFixerService;
use League\Flysystem\Adapter\Local;
use League\Flysystem\Filesystem;
use Tests\AppBundle\BaseTest;
@ -40,7 +40,7 @@ class StlConverterTest extends BaseTest
}
/**
* @expectedException AppBundle\Exception\Stl\LDLibraryMissingException
* @expectedException LoaderBundle\Exception\Stl\LDLibraryMissingException
*/
public function testLDContextMissing()
{

View File

@ -2,13 +2,11 @@
namespace Tests\AppBundle\Service\Stl;
use AppBundle\Service\Stl\StlConverterService;
use AppBundle\Service\Stl\StlFixerService;
use LoaderBundle\Service\Stl\StlConverterService;
use LoaderBundle\Service\Stl\StlFixerService;
use League\Flysystem\Adapter\Local;
use League\Flysystem\Filesystem;
use League\Flysystem\FilesystemInterface;
use org\bovigo\vfs\vfsStreamDirectory;
use org\bovigo\vfs\vfsStreamWrapper;
use PHPUnit\Framework\TestCase;
use Tests\AppBundle\BaseTest;

View File

@ -2,14 +2,12 @@
namespace Tests\AppBundle\Service\Stl;
use AppBundle\Service\Stl\StlConverterService;
use AppBundle\Service\Stl\StlFixerService;
use AppBundle\Service\Stl\StlRendererService;
use LoaderBundle\Service\Stl\StlConverterService;
use LoaderBundle\Service\Stl\StlFixerService;
use LoaderBundle\Service\Stl\StlRendererService;
use League\Flysystem\Adapter\Local;
use League\Flysystem\Filesystem;
use League\Flysystem\FilesystemInterface;
use org\bovigo\vfs\vfsStreamDirectory;
use org\bovigo\vfs\vfsStreamWrapper;
use PHPUnit\Framework\TestCase;
use Tests\AppBundle\BaseTest;

View File

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

View File

@ -1,10 +1,10 @@
<?php
namespace Tests\AppBundle\Util\LDModelParser;
namespace Tests\LoaderBundle\Util\LDModelParser;
use AppBundle\Exception\ErrorParsingLineException;
use AppBundle\Exception\ParseErrorException;
use AppBundle\Util\LDModelParser;
use LoaderBundle\Util\LDModelParser;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Validator\Constraints\DateTime;
@ -49,7 +49,7 @@ class LDModelParserTest extends TestCase
/**
* @expectedException AppBundle\Exception\ErrorParsingLineException
* @expectedException LoaderBundle\Exception\ErrorParsingLineException
*/
public function testInvalid()
{

Some files were not shown because too many files have changed in this diff Show More