Chapters
21 Chapters
|
2:10:39
|
Login to bookmark this video
-
Course Code
Login or register to download the code!Compatible PHP versions: ^7.1.3
Login or register to download the code!Compatible PHP versions: ^7.1.3
-
This Video
Login or register to download the video!
Login or register to download the video!
-
Subtitles
Login or register to download the subtitles!
Login or register to download the subtitles!
-
Course Script
Login or register to download the script!
Login or register to download the script!
11.
Page-Specific JS: Multiple Entries
Scroll down to the script below, click on any sentence (including terminal blocks) to jump to that spot in the video!
Subscribe to jump to this part in the video!
This tutorial works great with Symfony5!
What PHP libraries does this tutorial use?
// composer.json
{
"require": {
"php": "^7.1.3",
"ext-iconv": "*",
"aws/aws-sdk-php": "^3.87", // 3.91.4
"composer/package-versions-deprecated": "^1.11", // 1.11.99
"doctrine/annotations": "^1.0", // 1.10.1
"doctrine/doctrine-bundle": "^1.6.10", // 1.10.2
"doctrine/doctrine-migrations-bundle": "^1.3|^2.0", // v2.0.0
"doctrine/orm": "^2.5.11", // v2.7.2
"knplabs/knp-markdown-bundle": "^1.7", // 1.7.1
"knplabs/knp-paginator-bundle": "^2.7", // v2.8.0
"knplabs/knp-time-bundle": "^1.8", // 1.9.0
"league/flysystem-aws-s3-v3": "^1.0", // 1.0.22
"league/flysystem-cached-adapter": "^1.0", // 1.0.9
"liip/imagine-bundle": "^2.1", // 2.1.0
"nexylan/slack-bundle": "^2.0,<2.2.0", // v2.1.0
"oneup/flysystem-bundle": "^3.0", // 3.0.3
"php-http/guzzle6-adapter": "^1.1", // v1.1.1
"phpdocumentor/reflection-docblock": "^3.0|^4.0", // 4.3.0
"sensio/framework-extra-bundle": "^5.1", // v5.3.1
"stof/doctrine-extensions-bundle": "^1.3", // v1.3.0
"symfony/asset": "^4.0", // v4.2.5
"symfony/console": "^4.0", // v4.2.5
"symfony/flex": "^1.9", // v1.21.6
"symfony/form": "^4.0", // v4.2.5
"symfony/framework-bundle": "^4.0", // v4.2.5
"symfony/property-access": "4.2.*", // v4.2.5
"symfony/property-info": "4.2.*", // v4.2.5
"symfony/security-bundle": "^4.0", // v4.2.5
"symfony/serializer": "4.2.*", // v4.2.5
"symfony/twig-bundle": "^4.0", // v4.2.5
"symfony/validator": "^4.0", // v4.2.5
"symfony/web-server-bundle": "^4.0", // v4.2.5
"symfony/webpack-encore-bundle": "^1.4", // v1.5.0
"symfony/yaml": "^4.0", // v4.2.5
"twig/extensions": "^1.5" // v1.5.4
},
"require-dev": {
"doctrine/doctrine-fixtures-bundle": "^3.0", // 3.1.0
"easycorp/easy-log-handler": "^1.0.2", // v1.0.7
"fzaninotto/faker": "^1.7", // v1.8.0
"symfony/debug-bundle": "^3.3|^4.0", // v4.2.5
"symfony/dotenv": "^4.0", // v4.2.5
"symfony/maker-bundle": "^1.0", // v1.11.5
"symfony/monolog-bundle": "^3.0", // v3.3.1
"symfony/phpunit-bridge": "^3.3|^4.0", // v4.2.5
"symfony/stopwatch": "4.2.*", // v4.2.5
"symfony/var-dumper": "^3.3|^4.0", // v4.2.5
"symfony/web-profiler-bundle": "4.2.*" // v4.2.5
}
}
What JavaScript libraries does this tutorial use?
// package.json
{
"devDependencies": {
"@symfony/webpack-encore": "^0.27.0", // 0.27.0
"autocomplete.js": "^0.36.0",
"autoprefixer": "^9.5.1", // 9.5.1
"bootstrap": "^4.3.1", // 4.3.1
"core-js": "^3.0.0", // 3.0.1
"dropzone": "^5.5.1", // 5.5.1
"font-awesome": "^4.7.0", // 4.7.0
"jquery": "^3.4.0", // 3.4.0
"popper.js": "^1.15.0",
"postcss-loader": "^3.0.0", // 3.0.0
"sass": "^1.29.0", // 1.29.0
"sass-loader": "^7.0.1", // 7.3.1
"sortablejs": "^1.8.4", // 1.8.4
"webpack-notifier": "^1.6.0" // 1.7.0
}
}
14 Comments
Hello,
Thank you for this awesome tutorial.
I'm currently working with a template that has a specific min.js file responsible for activating some js stuff like ripple effect etc. I've imported that js file in my app.js which i included in my base layout, everything is good now for my static html. The problem is with my reactjs app, when i render it i lost that ripple effect (especially with my async components) because app.js is called once in the first rendering. Is there a way to fix this please.
Hi Marouane,
I'm not sure what framework are you using for animations (if I'm correct to assume that you want some animations automatically applied to certain elements in your DOM), but for this, I recommend you use ReacJS animation features specifically. While we don't have a tutorial that targets these features specifically, you can check our ReactJS tutorial at https://symfonycasts.com/screencast/reactjs, or refer to ReactJS documentation on how to apply this! https://reactjs.org/docs/animation.html.
Alternatively, though much harder to achieve without bugs, you can listen for changes in the DOM within your code and fire animations on specific events: https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver. Hope this helps!
Thank you for your quick response.
I'm not using a framework, its a static template called fuse with a js file triggering ripple effect animation through css classes and using jquery.
I've imported that file in my app.js and i want to re-load it after rendering a react js component. Is that possible ?
Hmm, I suppose you could instead of loading the script on the template, load it once your react components have finished mounting. Using the proper hook, you could do something like this:
Then you can manage exactly when your script is loaded and executed.
It worked thank you so much !
Hello Sf cast,
Is it bad for performance to split the code into multiples files ? Isn't it better to import new JS into app.js ?
Cheers!
Hey Virgile,
Did you finish this course? You need to understand how Webpack Encore works. app.js is a special file that contains scripts that should be included on *every* page. But entries are specific, they contain JS code only for specific pages. Well, probably including 1 file instead of 2 is better, but I don't think it's a big difference on practice between 1 and 2 included files, another thing when we're talking about including 10 files :) And even with 1 or 2 files it still depends. A lot of people are working on optimizing Webpack work, and on practice including one gigantic unique file not always better than 2 but smaller. Anyway, Webpack is optimized by many people every day, and you get that optimization for free when using it.
Cheers!
Hey Victor
Thanks you for your explanation. You made this more clear for me :)
Hey Virgile,
Glad to hear it's clearer to you now! :)
Cheers!
Hello
I feel like I'm missing some migrations. I kept watching the videos until this point anyway but I don't have articles nor space ice cream on the left side. Maybe this comes from other tutorials but I don't want to watch those. Is it possible to update the course code with all the content ?
Cheers!
Hey Julien,
I just double-checked the course for you and it works well, I don't have any missed migrations. Here's the way I tested it:
1. Download and extract the course code
2. Go to start/ directory
3. Install Composer deps with: "composer install"
4. Make sure I don't have the DB: "bin/console doctrine:database:drop --force"
5. Create the DB: "bin/console doctrine:database:create"
6. Run migrations: "bin/console doctrine:migration:migrate"
7. Check that schema is valid: "bin/console doctrine:schema:validate"
Actually, the same for finish/ directory. Please, make sure you execute these steps and if you still have invalid DB schema - you can run "bin/console doctrine:schema:update --dump-sql" to see what's exactly wrong, probably you just have a different MySQL version and it requires some specific queries to be executed, so you can just execute them with "bin/console doctrine:schema:update --force" and that's it.
I hope this helps!
Cheers!
Hi team,
Is there a way to use Encore but still using the good old JS in the javascript Twig tag ?
Example in a Twig template :
`
{% block javascripts %}
{% endblock %}
`
Hey Kaizoku
And the answer is YES! You just need to set them global inside your encore endpoint. You can find more information about it in this chapter https://symfonycasts.com/sc... or search official encore documentation.
Cheers!
Awesome ! Thank you, I'll check this out.
"Houston: no signs of life"
Start the conversation!