Юра
как мне в этом плане пых нравится, стандартизировали в свое время автолоад и всё
Login
Парни всем привет. у кого то есть опыт по подключению css, js, sas в webpack в symfony 7. ?
Login
c assetsmap проблемы? вроде он стал по умолчанию. надо его отключить и тогда вебпак как раньше в 6 и ранее юзать
я скачал шаблон для сайта, в нём вот эти папки и файлы
styles
fonts
img
js
sass
я их поместил в корневую папку assets.
вот как выглядят мои файлы конфигурации:
app.css
@import 'app.css';
@import 'bootstrap.min.css';
@import 'fontawesome.min.css';
@import 'layerslider.min.css';
@import 'jquery.datetimepicker.min.css';
@import 'magnific-popup.min.css';
@import 'slick.min.css';
@import 'animate.min.css';
@import 'custom-cursor.min.css';
@import 'style.css';
@import '../sass/style.scss';
app.js :
import './bootstrap.js';
/*
* Welcome to your app's main JavaScript file!
*
* We recommend including the built version of this JavaScript file
* (and its CSS file) in your base layout (base.html.twig).
*/
// any CSS you import will output into a single css file (app.css in this case)
import './styles/app.css';
import './styles/bootstrap.min.css';
import './styles/fontawesome.min.css';
import './styles/layerslider.min.css';
import './styles/jquery.datetimepicker.min.css';
import './styles/magnific-popup.min.css';
import './styles/slick.min.css';
import './styles/animate.min.css';
import './styles/custom-cursor.min.css';
import './styles/style.css';
import './js/vendor/jquery-3.6.0.min.js';
import './js/jquery-migrate-1.4.1.min.js';
import './js/jquery.waypoints.min.js';
import './js/appear.js';
import './js/slick.min.js';
import './js/bootstrap.min.js';
import './js/jquery.datetimepicker.min.js';
import './js/jquery.magnific-popup.min.js';
import './js/imagesloaded.pkgd.min.js';
import './js/isotope.pkgd.min.js';
import './js/universal-parallax.min.js';
import './js/wow.min.js';
import './js/vscustom-carousel.min.js';
import './js/jquery.counterup.min.js';
import './js/ajax-mail.js';
import './js/jquery.marquee.min.js';
import './js/gsap.min.js';
import './js/ScrollTrigger.min.js';
import './js/ScrollToPlugin.min.js';
import './js/ScrollSmoother.min.js';
import './js/SplitText.min.js';
import './js/custom-cursor.js';
import './js/main.js';
webpack.config.js:
const Encore = require('@symfony/webpack-encore');
// Manually configure the runtime environment if not already configured yet by the "encore" command.
// It's useful when you use tools that rely on webpack.config.js file.
if (!Encore.isRuntimeEnvironmentConfigured()) {
Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'dev');
}
Encore
// directory where compiled assets will be stored
.setOutputPath('public/build/')
// public path used by the web server to access the output path
.setPublicPath('/build')
// only needed for CDN's or subdirectory deploy
//.setManifestKeyPrefix('build/')
/*
* ENTRY CONFIG
*
* Each entry will result in one JavaScript file (e.g. app.js)
* and one CSS file (e.g. app.css) if your JavaScript imports CSS.
*/
.addEntry('app', './assets/app.js')
// When enabled, Webpack "splits" your files into smaller pieces for greater optimization.
.splitEntryChunks()
// enables the Symfony UX Stimulus bridge (used in assets/bootstrap.js)
.enableStimulusBridge('./assets/controllers.json')
// will require an extra script tag for runtime.js
// but, you probably want this, unless you're building a single-page app
.enableSingleRuntimeChunk()
/*
* FEATURE CONFIG
*
* Enable & configure other features below. For a full
* list of features, see:
* https://symfony.com/doc/current/frontend.html#adding-more-features
*/
.cleanupOutputBeforeBuild()
.enableBuildNotifications()
.enableSourceMaps(!Encore.isProduction())
// enables hashed filenames (e.g. app.abc123.css)
.enableVersioning(Encore.isProduction())
// configure Babel
// .configureBabel((config) => {
// config.plugins.push('@babel/a-babel-plugin');
// })
// enables and configure @babel/preset-env polyfills
.configureBabelPresetEnv((config) => {
config.useBuiltIns = 'usage';
config.corejs = '3.23';
})
// enables Sass/SCSS support
.enableSassLoader()
Login
c assetsmap проблемы? вроде он стал по умолчанию. надо его отключить и тогда вебпак как раньше в 6 и ранее юзать
// uncomment if you use TypeScript
//.enableTypeScriptLoader()
// uncomment if you use React
//.enableReactPreset()
// uncomment to get integrity="..." attributes on your script & link tags
// requires WebpackEncoreBundle 1.4 or higher
//.enableIntegrityHashes(Encore.isProduction())
// uncomment if you're having problems with a jQuery plugin
.autoProvidejQuery()
// // правила для обработки изображений
// .addRule({
// test: /\.(png|jpg|jpeg|gif|svg)$/,
// use: [
// {
// loader: 'file-loader',
// options: {
// name: 'images/[name].[hash:8].[ext]',
// },
// },
// ],
// });
module.exports = Encore.getWebpackConfig();
при попытке запустить
npm run dev
получаю ошибки, мол не верный путь к переменным в файле /assets/sass/style.scss, но путь то верный. целый день вожусь. вот надежда на вашу помощь
npm run dev 1 (5.536s) < 17:49:33
> dev
> encore dev
Running webpack ...
ERROR Failed to compile with 2 errors 5:52:15 PM
error in ./assets/sass/style.scss 5:52:15 PM
Module build failed (from ./node_modules/css-loader/dist/cjs.js):
Error: Can't resolve 'base/variable' in '/var/www/weborbit/assets/sass'
at finishWithoutResolve (/var/www/weborbit/node_modules/enhanced-resolve/lib/Resolver.js:564:18)
at /var/www/weborbit/node_modules/enhanced-resolve/lib/Resolver.js:656:15
at /var/www/weborbit/node_modules/enhanced-resolve/lib/Resolver.js:718:5
at eval (eval at create (/var/www/weborbit/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:16:1)
at /var/www/weborbit/node_modules/enhanced-resolve/lib/Resolver.js:718:5
at eval (eval at create (/var/www/weborbit/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:27:1)
at /var/www/weborbit/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:89:43
at /var/www/weborbit/node_modules/enhanced-resolve/lib/Resolver.js:718:5
at eval (eval at create (/var/www/weborbit/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:15:1)
at /var/www/weborbit/node_modules/enhanced-resolve/lib/Resolver.js:718:5
at eval (eval at create (/var/www/weborbit/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:16:1)
at /var/www/weborbit/node_modules/enhanced-resolve/lib/Resolver.js:718:5
at eval (eval at create (/var/www/weborbit/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:43:1)
at /var/www/weborbit/node_modules/enhanced-resolve/lib/ConditionalPlugin.js:53:42
at /var/www/weborbit/node_modules/enhanced-resolve/lib/Resolver.js:718:5
at eval (eval at create (/var/www/weborbit/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:16:1)
at /var/www/weborbit/node_modules/enhanced-resolve/lib/forEachBail.js:39:13
at /var/www/weborbit/node_modules/enhanced-resolve/lib/ModulesInHierarchicalDirectoriesPlugin.js:79:16
at processTicksAndRejections (node:internal/process/task_queues:81:21)
at runNextTicks (node:internal/process/task_queues:64:3)
at process.processImmediate (node:internal/timers:449:9)
error in ./assets/styles/app.css 5:52:15 PM
Login
проблема с путями, но они же верные, может у кого то была подобная ситуация?
Login
Не было такого ни у кого?
Это мне так повезло...
Dmitriy
жесть
Login
Не то слово( уже все перерыл но ничего не вышло, решил в группу написать
Nikolay
Maks
Maks
или правь пути до base/variable
Login
что то по любому не то сделал, что то не так подключил, но что не пойму, у меня мало опыт в этом.
вы вообще подключали css, scss, js через webpack или нет?
Login
Login
буду разбиратся.
есть примеры как подключить css и js в webpack, но у меня тут ещё папка sass. думаю что то лишнее подключил что оно кофликтует.
Юра
Senior full suck developer. Sucks at backend and frontend for more then 10 years ...
#lest
У меня есть сервис менеджер паролей, на клиенте по секретному ключу идет шифрование/расшифрование пароля по AES, на сервере в бд хранятся только зашифрованные данные. Я хочу перед отдачей списка паролей узнать, ключ который использует юзер валидный или нет, если валидный отдавать список если нет то не отдавать. Проблема в том что эту валидность я же узнаю только на клиенте со списком, а я хочу не отдавать список пока не буду уверен в валидности ключа. Как поступить
#lest
Но при этом этот самый ключ никаким образом не должен передаваться серверу
Юра
А на беке ключ есть?
Юра
А понял
#lest
Там нет ключа, ключ будет сетит в js сам клиент
#lest
На сервере только шифры данных
#lest
Юзаю crypto.js
Юра
Мне кажется никак это не сделать в синхронных ключах
Юра
Ну либо у тебя должна быть на беке заранее известная фраза которач была зашифрована при создании клбча
Юра
Тогда ты можешь проверить что клиент передает правильный зашифрованный текст
Юра
Ты передаешь клиенту эту фразу и просишь зашифровать и передать тебе и сравниваешь
Юра
Ну эта фраза должна быть уже известна на момент создания ключа
#lest
Какую-то env переменную сделать под это?
#lest
С фразой
#lest
Идея так-то нормальная
Юра
Логика в том что при регистрации клиента или ключа когда ты точно уверен что клиент надёжный, твой сервер и клиент определяют некую фразу которая уникальная для каждого клиента, и клиент тебе передает шифр. Т.е. у тебя есть и сама фраза и зашифрованная фраза
Юра
Тогда не зная ключа ты млдещьн попросить зашифровать фразу и сравнить
Юра
Ну как обычный md5 hash
Юра
Только клиент имеющий правильный ключ сможет вернуть правильный хеш
#lest
Понял, попробую так
#lest
Если есть более лучшие алгоритмы хранения паролей то пишите, главное чтобы мастер-пароль/ключ не хранился на сервере
Юра
Любая асинхронная схема например приватный публичный ключ
Юра
Rsa и т.д.
The Ant
В атрибутах роутов параметр name больше не обязателен? Чёт ошибки сыпятся в 6.4 симфе про алиас не может ссылаться сам на себя.
Я про
#[Route('/foo/', name: self::class)]
Pavel
The Ant
Виктор
Всем привет! Подскажите, пожалуйста, можно ли как-то в JMS сериализаторе в конфиге сериализации вытащить поле дочернего объекта? Типа:
class Parent
{
private $child;
public function getChild(): Child { return $this->child; }
}
class Child
{
private $name;
public function getName(): string { return $this->name; }
}
И потом в конфиге что-то типа:
Parent
xml_root_name: parent
properties:
child.name:
type: string
serialized_name: childName
Чтобы получилось:
<parent>
<childName>...</childName>
</parent>
Maks
Maks
пробуй через accessor
Виктор
Нет, так не работает.
Виктор
А что за accessor_methods? В документации такого не нашёл.
Виктор
Короче, методом тыка выяснил Ставим inline: true, дочерний объект сериализуется, не оборачиваясь в свой тег.
The Ant
Спрошу тут ещё.
Кто с бигинт типом в доктрине работал? Типа string хватит, или надо string|int? Дока всратая, не однозначно написано.
Михаил
Александр
The Ant
Блин не охота юнион вешать
Михаил
The Ant
Михаил
The Ant
Ля сложно
Михаил
@SerafimArts а что ты там за либу кидал которая с большими числами работатет, там есть типы? Или там всё чисто через функции?
The Ant
Тестить это говно неахота )
Александр
Ля сложно
Во, мб поможет, там вроде бы решение с кастомным типом было
https://github.com/doctrine/dbal/issues/3690
The Ant
Вадим
Привет!
попалось на глаза как в Пыхтелке @SerafimArts говорил что использование геттеров и сеттеров у сущности суть устаревшая практика. Расскажите пожалуйста подробнее для джунов что с этим не так и как лучше делать?
Kirill
Kirill
а свойства в пыхе реализуются через
public string $name {
get => 'ololo';
set(string $val) => $val . 'trollolo';
}
Вадим
или я чото не понимаю
Kirill
самих свойств в джаве не было, откуда пых перетянул эту практику, т.к. в пыхе их тоже нема до недавнего времени
Kirill
Nikolay
Kirill
Вадим
Kirill
Вадим
Вадим
как погуглить? а то я ж опять доку по пыху выгуглю