Юра
как мне в этом плане пых нравится, стандартизировали в свое время автолоад и всё
Login
Парни всем привет. у кого то есть опыт по подключению css, js, sas в webpack в symfony 7. ?
Alex
Парни всем привет. у кого то есть опыт по подключению css, js, sas в webpack в symfony 7. ?
c assetsmap проблемы? вроде он стал по умолчанию. надо его отключить и тогда вебпак как раньше в 6 и ранее юзать
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
c assetsmap проблемы? вроде он стал по умолчанию. надо его отключить и тогда вебпак как раньше в 6 и ранее юзать
Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js): HookWebpackError: Module build failed (from ./node_modules/css-loader/dist/cjs.js): Error: Can't resolve 'base/variable' in '/var/www/weborbit/assets/sass'
Login
проблема с путями, но они же верные, может у кого то была подобная ситуация?
Login
Не было такого ни у кого? Это мне так повезло...
Dmitriy
жесть
Login
Не то слово( уже все перерыл но ничего не вышло, решил в группу написать
Maks
или правь пути до base/variable
Login
что то по любому не то сделал, что то не так подключил, но что не пойму, у меня мало опыт в этом. вы вообще подключали css, scss, js через webpack или нет?
Login
или правь пути до base/variable
пути верные, проверял.
Login
или правь пути до base/variable
пути не могут быть ошибочными, я папки с вёрстки скопировал в /assets
Maks
пути верные, проверял.
с точки зрения вебпака не верные)
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)]
The Ant
он же вроде и не был обязателен, роутер ставил в имя название класса и метода, если name пустой
Я по привычке копипастой, ещё с тех времён когда было в комментариях аннотации
Виктор
Всем привет! Подскажите, пожалуйста, можно ли как-то в 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
пробуй через accessor
Виктор
Нет, так не работает.
Виктор
А что за accessor_methods? В документации такого не нашёл.
Виктор
Короче, методом тыка выяснил Ставим inline: true, дочерний объект сериализуется, не оборачиваясь в свой тег.
The Ant
Спрошу тут ещё. Кто с бигинт типом в доктрине работал? Типа string хватит, или надо string|int? Дока всратая, не однозначно написано.
Михаил
Спрошу тут ещё. Кто с бигинт типом в доктрине работал? Типа string хватит, или надо string|int? Дока всратая, не однозначно написано.
я работал. но уже не посмотрю код - уволился. Я просто для доктрины объявил бигинт и всё
The Ant
Вроде явно указывают
Блин не охота юнион вешать
Михаил
Блин не охота юнион вешать
Так напиши свой тип
The Ant
я работал. но уже не посмотрю код - уволился. Я просто для доктрины объявил бигинт и всё
Я вот тоже объявил, но ошибка вылезла. Доктрина не может строку на инт намапить
The Ant
Ля сложно
The Ant
Ну потому что бигинт больше пхпшного инта
А если число будет меньше, все равно строкой намапит? Или опять ошибка, надо число
Михаил
@SerafimArts а что ты там за либу кидал которая с большими числами работатет, там есть типы? Или там всё чисто через функции?
The Ant
Тестить это говно неахота )
Александр
А если число будет меньше, все равно строкой намапит? Или опять ошибка, надо число
Так в доках явно же)) Написано, если в рамках поддерживаемого диапазона то будет int. Если число выйдет за пределы то string будет
Александр
Ля сложно
Во, мб поможет, там вроде бы решение с кастомным типом было https://github.com/doctrine/dbal/issues/3690
The Ant
Во, мб поможет, там вроде бы решение с кастомным типом было https://github.com/doctrine/dbal/issues/3690
5летней давности. Но спасибо :) придется потестить самому :(
Вадим
Привет! попалось на глаза как в Пыхтелке @SerafimArts говорил что использование геттеров и сеттеров у сущности суть устаревшая практика. Расскажите пожалуйста подробнее для джунов что с этим не так и как лучше делать?
Kirill
а свойства в пыхе реализуются через public string $name { get => 'ololo'; set(string $val) => $val . 'trollolo'; }
Вадим
гет + сет - это эмуляция свойств
что значит эмуляция свойств? У класса же есть свойства, зачем их эмулировать?
Вадим
или я чото не понимаю
Kirill
что значит эмуляция свойств? У класса же есть свойства, зачем их эмулировать?
не путай реальные свойства класса и поля, которые с натяжкой, но тоже можно называть свойствами, хоть это и не корректно
Kirill
самих свойств в джаве не было, откуда пых перетянул эту практику, т.к. в пыхе их тоже нема до недавнего времени
Kirill
а свойства в пыхе реализуются через public string $name { get => 'ololo'; set(string $val) => $val . 'trollolo'; }
а в том случае, если поле только для чтения, без мутаций, то геттер заменяется на public readonly string $name
Вадим
не путай реальные свойства класса и поля, которые с натяжкой, но тоже можно называть свойствами, хоть это и не корректно
ну в пыхе вот эти которые private, protected и public они называются свойствами. Class member variables are called properties. в доке
Kirill
ну в пыхе вот эти которые private, protected и public они называются свойствами. Class member variables are called properties. в доке
Да мало ли как называется. Метод тоже можно функцией называть, а анонимку замыканием
Вадим
как погуглить? а то я ж опять доку по пыху выгуглю