Skip to content

Commit eda8162

Browse files
committed
Initial commit
0 parents  commit eda8162

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+2683
-0
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
.idea
2+
/vendor/
3+
composer.lock
4+
.phpunit.result.cache

BitrixOrdinaryToolsBundle.php

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
3+
namespace Prokl\BitrixOrdinaryToolsBundle;
4+
5+
use Prokl\BitrixOrdinaryToolsBundle\DependencyInjection\BitrixOrdinaryToolsExtension;
6+
use Symfony\Component\HttpKernel\Bundle\Bundle;
7+
8+
/**
9+
* Class BitrixOrdinaryToolsBundle
10+
* @package Prokl\BitrixOrdinaryToolsBundle
11+
*
12+
* @since 19.05.2021
13+
*/
14+
class BitrixOrdinaryToolsBundle extends Bundle
15+
{
16+
/**
17+
* @inheritDoc
18+
*/
19+
public function getContainerExtension()
20+
{
21+
if ($this->extension === null) {
22+
$this->extension = new BitrixOrdinaryToolsExtension();
23+
}
24+
25+
return $this->extension;
26+
}
27+
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
<?php
2+
3+
namespace Prokl\BitrixOrdinaryToolsBundle\DependencyInjection;
4+
5+
use Exception;
6+
use LogicException;
7+
use Symfony\Component\Config\FileLocator;
8+
use Symfony\Component\DependencyInjection\ContainerBuilder;
9+
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
10+
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
11+
12+
/**
13+
* Class BitrixOrdinaryToolsExtension
14+
* @package Prokl\BitrixOrdinaryTools\DependencyInjection
15+
*
16+
* @since 19.05.2021
17+
*/
18+
class BitrixOrdinaryToolsExtension extends Extension
19+
{
20+
private const DIR_CONFIG = '/../Resources/config';
21+
22+
/**
23+
* @inheritDoc
24+
* @throws Exception | LogicException
25+
*/
26+
public function load(array $configs, ContainerBuilder $container) : void
27+
{
28+
$loader = new YamlFileLoader(
29+
$container,
30+
new FileLocator(__DIR__ . self::DIR_CONFIG)
31+
);
32+
33+
$loader->load('services.yaml');
34+
$loader->load('seo.yaml');
35+
$loader->load('image_resizer.yaml');
36+
37+
if (!class_exists('Prokl\CustomFrameworkExtensionsBundle\DependencyInjection\CustomFrameworkExtensionsExtension')) {
38+
throw new LogicException(
39+
'Чтобы использовать Твиг нужно установить и активировать core.framework.extension.bundle.
40+
Попробуйте composer require proklung/core-framework-extension-bundle.'
41+
);
42+
}
43+
44+
$loader->load('twig.yaml');
45+
46+
// Фасады подтягиваются только, если установлен соответствующий бандл.
47+
if (class_exists('Prokl\FacadeBundle\Services\AbstractFacade')) {
48+
$loader->load('facades.yaml');
49+
}
50+
}
51+
52+
/**
53+
* @inheritDoc
54+
*/
55+
public function getAlias() : string
56+
{
57+
return 'bitrix-ordinary-tools';
58+
}
59+
}

Resources/config/facades.yaml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
services:
2+
_defaults:
3+
autowire: true
4+
autoconfigure: true
5+
public: true
6+
7+
Prokl\BitrixOrdinaryToolsBundle\Services\Facades\LastModifiedFacade: ~
8+
Prokl\BitrixOrdinaryToolsBundle\Services\Facades\CFileFacade: ~
9+
Prokl\BitrixOrdinaryToolsBundle\Services\Facades\TimestampFacade: ~
10+
Prokl\BitrixOrdinaryToolsBundle\Services\Facades\TimestampIblockFacade: ~
11+
Prokl\BitrixOrdinaryToolsBundle\Services\Facades\ResizerImageFacade: ~
12+
Prokl\BitrixOrdinaryToolsBundle\Services\Facades\ResizerImageHardCropFacade: ~
13+
Prokl\BitrixOrdinaryToolsBundle\Services\Facades\ResizerImageNoUpscaleFacade: ~
14+
Prokl\BitrixOrdinaryToolsBundle\Services\Facades\ResizerImageUpscaleFacade: ~
15+
Prokl\BitrixOrdinaryToolsBundle\Services\Facades\IblockFacade: ~
16+
Prokl\BitrixOrdinaryToolsBundle\Services\Facades\IblockPropertyFacade: ~
17+
Prokl\BitrixOrdinaryToolsBundle\Services\Facades\IblockSectionFacade: ~
18+
Prokl\BitrixOrdinaryToolsBundle\Services\Facades\CacherFacade: ~
19+
Prokl\BitrixOrdinaryToolsBundle\Services\Facades\HLIblockFacade: ~
20+
Prokl\BitrixOrdinaryToolsBundle\Services\Facades\IblockElementFacade: ~
21+
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
####################
2+
# Ресайзер картинок
3+
####################
4+
5+
services:
6+
# конфигурация по умолчанию в *этом* файле
7+
_defaults:
8+
autowire: true
9+
autoconfigure: true
10+
public: true
11+
12+
# Resize
13+
image.resizer:
14+
class: Prokl\BitrixOrdinaryToolsBundle\Services\Resizer\Resize
15+
16+
# ResizeNoUpscale
17+
image.resizer.no.upscale:
18+
class: Prokl\BitrixOrdinaryToolsBundle\Services\Resizer\ResizeNoUpscale
19+
20+
# ResizeUpscale
21+
image.resizer.upscale:
22+
class: Prokl\BitrixOrdinaryToolsBundle\Services\Resizer\ResizeUpscale
23+
24+
# ResizeHardCrop
25+
image.resizer.hard.crop:
26+
class: Prokl\BitrixOrdinaryToolsBundle\Services\Resizer\ResizeHardCrop

Resources/config/seo.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
services:
2+
_defaults:
3+
autowire: true
4+
autoconfigure: true
5+
public: true
6+
7+
# Обработчик LastModified заголовков.
8+
bitrix_ordinary_tools.last_modified:
9+
shared: false
10+
class: Prokl\BitrixOrdinaryToolsBundle\Services\Seo\LastModifiedService
11+
12+
# Определение самого свежего элемента инфоблока.
13+
bitrix_ordinary_tools.timestamp_iblock:
14+
class: Prokl\BitrixOrdinaryToolsBundle\Services\Seo\TimestampIblock
15+
arguments: ['@bitrix_ordinary_tools.ciblockelement']
16+
17+
# Определение самого свежего элемента по arResult['ITEMS'].
18+
bitrix_ordinary_tools.timestamp_news:
19+
class: Prokl\BitrixOrdinaryToolsBundle\Services\Seo\TimestampNews
20+
21+
bitrix_ordinary_tools.clearizer:
22+
class: Prokl\BitrixOrdinaryToolsBundle\Services\Seo\Clearizer
23+
24+
Prokl\BitrixOrdinaryToolsBundle\Services\Seo\Clearizer: '@bitrix_ordinary_tools.clearizer'

Resources/config/services.yaml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
services:
2+
_defaults:
3+
autowire: true
4+
autoconfigure: true
5+
public: true
6+
7+
bitrix_ordinary_tools.ciblockelement:
8+
public: false
9+
class: CIBlockElement
10+
11+
bitrix_ordinary_tools.cfile:
12+
public: false
13+
class: CFile
14+
15+
# Битриксовый кэшер
16+
bitrix_ordinary_tools.bitrix_cacher:
17+
public: false
18+
class: CPHPCache
19+
20+
# Обертка над CFile.
21+
bitrix_ordinary_tools.cfile_wrapper:
22+
class: Prokl\BitrixOrdinaryToolsBundle\Services\Utils\CFileWrapper
23+
arguments: ['@bitrix_ordinary_tools.cfile']
24+
25+
iblock.element.manager:
26+
class: Prokl\BitrixOrdinaryToolsBundle\Services\Iblock\IblockElementManager
27+
28+
iblock.property.manager:
29+
class: Prokl\BitrixOrdinaryToolsBundle\Services\Iblock\IBlockPropertyManager
30+
31+
iblock.section.manager:
32+
class: Prokl\BitrixOrdinaryToolsBundle\Services\Iblock\IBlockSectionManager
33+
34+
hlblock.manager:
35+
class: Prokl\BitrixOrdinaryToolsBundle\Services\Iblock\HLIBlockElementManager
36+
37+
iblock.manager:
38+
class: Prokl\BitrixOrdinaryToolsBundle\Services\Iblock\IblockManager
39+
40+
# Кэшер.
41+
bitrix_ordinary_tools.cacher:
42+
class: Prokl\BitrixOrdinaryToolsBundle\Services\Cache\LegacyCacher
43+
arguments: ['@bitrix_ordinary_tools.bitrix_cacher']
44+

Resources/config/twig.yaml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#########
2+
# Twig.
3+
#########
4+
5+
services:
6+
# конфигурация по умолчанию в *этом* файле
7+
_defaults:
8+
autowire: true
9+
autoconfigure: true
10+
public: true
11+
12+
_instanceof:
13+
Twig_ExtensionInterface:
14+
tags: ['twig.extension']
15+
16+
# Twig loader
17+
twig.loader:
18+
class: Twig_Loader_Filesystem
19+
arguments:
20+
- '%twig_paths%'
21+
22+
# Twig
23+
twig:
24+
class: Prokl\BitrixOrdinaryToolsBundle\Services\Twig\TwigService
25+
arguments:
26+
- '@twig.loader'
27+
- '%debug%'
28+
- '%twig_cache_dir%'
29+
- '%twig_config%'
30+
31+
# Экземпляр Twig.
32+
twig.instance:
33+
class: Twig_Environment
34+
factory: ['@twig', 'instance']

0 commit comments

Comments
 (0)