Chapters
This course is archived!
This tutorial uses an older version of Symfony of the stripe-php SDK. The majority of the concepts are still valid, though there *are* differences. We've done our best to add notes & comments that describe these changes.
-
Course Code
Subscribe to download the code!Compatible PHP versions: >=5.5.9, <7.4
Subscribe to download the code!Compatible PHP versions: >=5.5.9, <7.4
-
This Video
Subscribe to download the video!
Subscribe to download the video!
-
Course Script
Subscribe to download the script!
Subscribe to download the script!
Your Stripe Dashboard
Scroll down to the script below, click on any sentence (including terminal blocks) to jump to that spot in the video!
So you want to handle payment on the web? You brave, foolish soul :).
Nah, it's fine - these days, handling credit card payments is a blast. Especially with Stripe - an awesome service we've used on KnpU for years.
But let's be real: you're dealing with people's money, so don't muck it up! If you screw up or do something insecure, there could be real consequences. You will at least have an angry customer. So I guess this tutorial is all about accepting money and having happy customers.
So let's build a real-life, robust payment system so that when things go wrong - because they will - we fail gracefully, avoid surprises and make happy customers.
Code Along with Me. Do it!
As always, I beg you, I implore you, to code along with me! To do that,
download the course code on this page, unzip it, and move into the start/
directory. That will give you the same code I have here.
This is a Symfony project, but we'll avoid going too deep into that stuff
because I want to focus on Stripe. Inside, open the README.md
file and follow
the setup details to get the project running. The last step is to open your
favorite console app, move into the directory, and run:
php bin/console server:run
to start up the built-in web server.
Our Great Idea: Sheep Shear Club
But before you start collecting any money, you need to come up with that next, huge idea. And here at KnpUniversity, we're convinced we've uncovered the next tech unicorn.
Ready to find out what it is? Open your browser, and go to:
http://localhost:8000
That's right: welcome to The Sheep Shear Club, your one-stop shop for artisanal shearing accessories for the most dapper of sheep. Purchase cutting-edge individual products - like one of our After-Shear scents - or have products delivered directly to your farm with a monthly subscription.
Gosh, it's shear luck that we got to this idea first. Once we finish coding the checkout, our competition will be feeling sheepish.
But the site is pretty simple: we have a login page - the password is breakingbaad
.
After you login, you can add items to your cart and they'll show up on the checkout
page. But notice, there is no checkout form yet. That's our job.
Getting to Know your Stripe Dashboard
The first step towards that is to sign up with a fancy new account on Stripe. Once you're in, you'll see this: your new e-commerce best friend: the Stripe dashboard.
There is a lot here, but right now I want you to notice that there are two environments: "test" and "live". These are like two totally separate databases full of orders, customers and more, and you can just switch between them to see your data.
Also, once you login, when you read the Stripe documentation, it will actually pre-fill your account's API keys into code examples.
Let's use those docs to put in our checkout form!
52 Comments
We're glad to hear that you're liking our content :)
Thanks for the course. It definitely helps with understanding some of the concepts but it seems quite out of date now. There doesn't seem to be anywhere else that provides a tutorial on how to integrate stripe with Symfony 5. It's frustrating trying to figure out what goes where in which file.
Are there any updates on when the course might be updated?
Hey Miles,
Thank you for your interest in SymfonyCasts tutorials! We are definitely going to update this course with latest Stripe API, but unfortunately we still don't have any estimations when it might happen. We really want to do it this year, but there's many upcoming tutorials we're working on that will be released first.
Thank you for your patience and understanding!
Meanwhile, except the new 3D Secure authorization which this tutorial does not cover, other concepts should be still relevant. I see the problem, the course is based on an older version of Symfony 3 that is not maintained anymore. If you don't know Symfony 5 yet, I'd recommend you to follow our Symfony 5 track first: https://symfonycasts.com/tr... . If you do, probably would be easier to start a new Symfony 5 project from scratch and try to apply the Stripe integration we're showing in this course.
As always, if you will be blocked somewhere in the middle of the course following it on a newer version of Symfony - please, let us know in the comments and we will try to help!
I hope this helps, sorry for any inconvenience!
Cheers!
Dear Ryan,
pleaaase please please update this course 🙏🙏🙏
I am desperate because I do not see through.
I am losing an important job on which my existence depends. 😩😩
Don't leave me down, please.
I extend my membership of Symfonycasts to 3021 😜
🙏🙏🙏🙏
Hey Yukako!
Thank you for your interest in SymfonyCasts tutorials! I see, Ecommerce is complex and always evolves. But still, most of the concepts that we're explaining in this tutorial are still valid for today, though I agree, this tutorials requires upgrade. Unfortunately, we haven't planned this course update yet. Right now we're working on a few other tutorials that we want to release soon. I count our voice to push up this tutorial upgrade, but can't say much when it might happen, sorry.
Thank you for your patience!
P.S. Did you finish this course? Or are you blocked at some point when following it? Please, feel free to ask questions below the video where you are stuck. And if you have some ideas about what exactly is outdated in this tutorial and why exactly you think this course should be upgraded, like what topics are missed, etc. - please, share with us! It is definitely useful when we will plan its update.
Cheers!
Hello Ryan, Thank you for your great courses !
I have to do a work with symfony 4 and the latest stripe version 3 with SCA (needed in Europe).
Can you suggest us a GitHub repo with a working example for the new way?
Will you update this course?
Because it has changed a lot.
Please let us know.
Thank you
Hey @seyedev!
I'm not sure if I'll update this course or not - it indeed has gotten out of date. There are various comments and notes throughout the tutorial to help with any changes, but the course is definitely showing its age. And, unfortunately, if we *do* update it, it won't be too soon. If you have specific questions while you go through the tutorial, I would happy to do my best to answer them :).
Cheers!
Hello ! Actually the code is out of date today. The majority of people prefer Symfony 4/5. If you are interested, I completely redid the initial projects with Symfony 4 using best practices, notably integrating NodeJs and Webpack-encore. And I reorganized the files at best.
The problem is mainly in relation to Javascript since we are in Stripe V3, the way of proceeding seems completely different therefore the way of writing the form and the javascripts scripts are no longer the same. I had to keep the basic form proposed by Stripe and I didn't touch anything. An update should be done at this level so that we can obtain the same form but with current practices
PS: Sorry for my english, I'm French
Hey Kiuega !
Yea, this code is written in Symfony 3 - so the structure of the project *will* indeed be different than a Symfony 4 / 5 project.
> If you are interested, I completely redid the initial projects with Symfony 4 using best practices, notably integrating NodeJs and Webpack-encore. And I reorganized the files at best
If you're willing to share this code with others, that would be awesome :). I'd be super happy to have a link to that GitHub repository.
> The problem is mainly in relation to Javascript since we are in Stripe V3, the way of proceeding seems completely different therefore the way of writing the form and the javascripts scripts are no longer the same. I had to keep the basic form proposed by Stripe and I didn't touch anything. An update should be done at this level so that we can obtain the same form but with current practices
Yea, this is the biggest change with Stripe: they prefer you to use their pre-built forms (Stripe elements) instead of building your own form and JavaScript handling. It actually makes life easier (less for us as developers to build), which is nice. And, unfortunately, they released that system shortly after our tutorial :p. We're investigating what we want to do for updating this tutorial right now. I appreciate your comments and questions!
Cheers!
No problem for repositories. I will post them when I finish the training. But for the moment I am stuck in : https://symfonycasts.com/sc...
I put a comment elsewhere. There are big problems with the tests. I see errors in my logs but I can't fix them. I hope to get there soon to move forward
I just replied over there to see if we can keep you moving :)
old tutorial and old source code and besides the files are not same as yours,
please update,
Im using Symfony 5x
I think it is better to ask for refund.
Hey Imad,
I'm sorry if you're experiencing any issues with this course. If you have any questions or stuck somewhere - please, ask us and we would try to help you figuring out the problem.
What exactly is different? Did you download the course code and started from the start/ directory? Or did you start a new separate project? We do recommend you to download the course code on any video page - see "Download" -> "Course Code" buttons - and start coding with us from start/ directory. This way your files will exactly match the files and code in our videos. Or you can cheat and look into finish/ directory that contains the "finish" code of this course.
I hope this helps! In case this course is not something you're looking for - sure, we could refund your payment. Please, write to us directly using our contact form or email us directly.
Cheers!
Hi,
the tutorial was made using Symfony 3 which no one uses this anymore, it is not compatible with my project Symfony 5
if you can update please reupload the tutorial
Hey Imad,
According to the Symfony releases, version 3.4 is LTS version and will be supported until November 2020 (and security fixes even until November 2021): https://symfony.com/release... . But yeah, I see your point! Unfortunately, we do not have in plans release a new tutorial about Stripe in particular on Symfony 5 in the nearest future, there're a lot of good things we would like to release first on Symfony 5.
Therefore, I could suggest you to follow the tutorial by downloading the course code and start from the start/ folder on Symfony 3.This is still enough to understand the Stripe API and Ecommerce concepts. Actually, Symfony in this course is just an additional tool that helps to show the Stripe API and its concepts to users and nothing much. After followed this course on Symfony 3 you would be able to apply knowledge on any framework you know the best.So, after deal with Stripe concepts in this tutorial, I bet you would be able to apply all the knowledge you got on Symfony 5 project, or any other framework actually. This is the best workflow we recommend our customers to follow our tutorials.
In case you still want to follow this course on your own project, like on Symfony 5 project for example - then we will do our best to help you solving any issues you faced during following this course. Just ask questions below videos where you stuck and we will reply to you as soon as we can.
I hope this helps you!
Cheers!
Hi Victor,
I just done upgrading your source code to Symfony 5 instead of v3 and Stripe API to v3 instead of v2 scripts which is deprecated and the stripe costume form you made which is not acceptable by stripe anymore for security reasons.
it toke me a lot of time, I don't need to tell you that we are using Symfony to save time not to waste it.
Thanks for your reply anyway.
Hey Imad L.!
Yea, this tutorial has gotten old - we're having a conversation internally and making that more obvious so people can choose to look at the information or not. Nice job doing all the upgrades - I'm really happy you got them working :).
Cheers!
Hi KNP' teachs!
I've done the installation as said and can see the site mehhh. Composer told me that the lock file is outdated so I need updates after. Why not? But at the end of the update I've got...
[Symfony\Component\Config\Definition\Exception\InvalidConfigurationException]
The child node "from_email" at path "fos_user" must be configured.
And I can't access the site, my sheeps are in the wildddddd.
So... can I work without the updates for the course? If I start again with the "old" files it will work but if you've got an answer with the updated one I'm also OK with it.
Thanks!
Hey Céline Ollagnier, it's good to see you again! :)
Look's like FOSUserBundle has made some changes since this tutorial was released, but it's easy to fix :)
Just add this to your config.yml:
# config.yml
fos_user:
...
from_email:
address: '%mailer_sender_address%' # whatever email you want to use for this tutorial
sender_name: '%mailer_sender_name%'
Cheers!
Good to "see" you gain MolloKhan
I need to learn Symfony + Stripe so... Thanks for the congif it's working :)
¡ Gracias todavía por tu ayuda Diego! Merci encore pour ton aide Diego !
I'm happy to help you, also, we have fixed our problem in our base code, if for any reason you have to download it again, you won't face this problem :)
Que tengas un buen día!
Hello,
I experienced several errors during the initial set up of the project.
When I executed composer install I had the following error messages:
[Twig_Error_Runtime]
The "core" extension is not enabled.
Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache handling the post-install-cmd event terminated with an exception
[RuntimeException]
An error occurred when executing the "'cache:clear --no-warmup'" command:
[Twig_Error_Runtime]
The "core" extension is not enabled.
.
I executed 'composer info twig/twig' as suggested in one conversation
name : twig/twig
descrip. : Twig, the flexible, fast, and secure template language for PHP
keywords : templating
versions : * v2.3.2
type : library
license : BSD 3-Clause "New" or "Revised" License (BSD-3-Clause) (OSI approved) https://spdx.org/licenses/B...
source : [git] https://github.com/twigphp/... 85e8372c451510165c04bf781295f9d922fa524b
dist : [zip] https://api.github.com/repo... 85e8372c451510165c04bf781295f9d922fa524b
names : twig/twig
autoload
psr-0
Twig_ => lib/
requires
php ^7.0
symfony/polyfill-mbstring ~1.0
requires (dev)
psr/container ^1.0
symfony/debug ~2.7
symfony/phpunit-bridge ~3.3@dev
------------------------------------------------------------------------------------------
When I executed php bin/console h:d:f:l
I've got the following error messages:
[Doctrine\DBAL\Exception\NotNullConstraintViolationException]
An exception occurred while executing 'INSERT INTO fos_user (username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_re
quested_at, roles) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params ["sleek_sheep1", "sleek_sheep1", "sleek_sheep1@example.com", "sleek_sheep1@example.com", 1, null, "$2y$13$G2Jk
UMLRipnqD6V08sPCkO9TRd\/\/Bdz3MR9YMogEcwBtelm6cC.fG", null, null, null, "a:0:{}"]:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'salt' cannot be null
[Doctrine\DBAL\Driver\PDOException]
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'salt' cannot be null
[PDOException]
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'salt' cannot be null
I'm sure enough the parameters.yml settings are correct because I used the sames in many other Symfony 3 courses of yours.
I thank you in advance for your help. Paolo
Hey Paolo!
Ah man, lame! Sorry about the issues. Let's get things figured out! And actually, this looks like *our* error! For the first, we upgraded some minor dependencies on this project, but it caused an odd conflict between the version of Twig & Symfony. I've just updated that - re-download the course code, and it should be all better. Sorry about that - but thanks for reporting it!
About the second issue, I can't repeat it: the fixtures load just fine for me. The salt column IS null, but the mapping allows for this and that's intended. So, it may have been due to the first issue - you may have possibly updated some libraries in an attempt to fix our mistake :). Try the fresh start code again, and let me know if you have any issues.
Cheers!
Hello Ryan,
thank you very much for your reply.
I downloaded again the course code as you indicated.
Unfortunately I experienced the same problems.
To solve the Twig/Symfony one I ran 'composer update'.
At the end I could follow the course lessons coding anyway.
Hey Paolo Mazzanti!
Hmm, I do not get the Twig issue with the newly downloaded start code (because inside the composer.json file, you should now see twig/twig set to ^1.24.1
to avoid using Twig 2. But, as long as you got it working, it's great!
About the database issue, you're right! We have a bug in our migration. The salt column is not required in the code, but the migration makes it required. We'll fix that up - it was due to an upgrade of FOSUserBundle in the tutorial.
Cheers!
Hello Ryan,
thanks a lot for your reply and your help.
What you wrote me about the twig version let me realize that, when I downloaded the course code again, I still got the old one, not the new one.
Now I could make a test running composer install with the the new code files and it works like a charm, so the Twig/Symfony problem is definitively solved.
I tested the database installation anyway and, as expected, I got the salt column error.
Now I know the reason why.
As I wrote in my previous post, I could follow the next lessons coding. Thanks to the finish folder files I could execute the correct migration on chapter 5.
I really appreciate your support. Cheers!
Hey Paolo Mazzanti!
Woohoo! And thanks to you for reporting it - this is *not* how we want the tutorial code to work :).
Cheers!
Hey, have you fixed the migration error? I'm getting the salt error. Please guide on what could solve the problem.
Hey Rodolfo,
Not on the moment you asked, but now it's fixed. I added a new migration to fix "salt not null" problem and other inconsistency of mapping with DB schema, see https://github.com/knpunive... . Now fixtures should be loaded without errors, so no more "salt not null" error.
Cheers!
I was able to solve the problem by copying the file you are refering to into my migrations folder. Now I'm checking the SheepShear Club website. Hope to be finishing this course soon. Thanks!!!
Great! Glad it helped. And good luck with this complex course! Well, e-commerce always complex ;)
Cheers!
When I run "php composer.phar install" I get the following error "Could not open input file: composer.phar". However, if I run "composer" I have it installed globally. So, I ran "composer install" in the directory. Not sure how to move forward. I have the following in my "parameters.yml":
parameters:
database_host: localhost
database_port: null
database_name: knpu_stripe
database_user: root
database_password: root
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: null
mailer_password: null
secret: ThisTokenIsNotSoSecretChangeIt
Thanks!
I'm also getting the following errors in the terminal:
[Doctrine\DBAL\Exception\ConnectionException]
An exception occured in driver: SQLSTATE[HY000] [2002] No such file or directory
[Doctrine\DBAL\Driver\PDOException]
SQLSTATE[HY000] [2002] No such file or directory
[PDOException]
SQLSTATE[HY000] [2002] No such file or directory
Hey Danny,
Do you have installed MySQL? Are that DB credentials in parameters.yml valid for your MySQL, i.e. your db user is root and its password is root too? Also, try to replace "localhost" with IP "127.0.0.1" in database_host parameter. Let me know if you still have this error.
Cheers!
Hey Danny,
"Could not open input file: composer.phar" error means that you don't have downloaded composer.phar file in the directory where you run this command. If you already have Composer installed globally - it makes sense. So you can replace all the commands in our screencasts which starts with "php composer.phar ..." with simple "composer ...", so you just need to run "composer install" in this case.
Cheers!
Hey Victor,
I'm under a different account now. Ok, everything is working fine now. I replaced database_host: "localhost" with "127.0.0.1" and added my MAMP MySQL database_port: "8889". Thanks for the help!
Danny
Hey Danny,
Yeah, non-standard MySQL port is another common mistake. Glad you got it working!
Cheers!
Hi Ryan..
Don't you mind if you explain step by step how to create a shopping cart in Symfony?
Hey Henri,
Well, it's simple Symfony service, which works with session, i.e. you hold order items in session. For that you probably want to create a model for order items, which will hold information about products which user want to add to the cart. You don't have to store this order items in the DB yet, just hold them in session. You also need a controller with simple CRUD operations to be able to add/edit/delete orders in your shopping card. So when a user do checkout - you will convert stored order items into real products user want to buy and add them to an order entity which in turn should be persisted in DB. Also, you have to assign the current user to this order entity to know who was made this order.
Probably you can take a look at Open Source SyliusOrderBundle which is a part of popular E-Commerce platform.
Cheers!
Thank you victor ... So just like a PHP native?
Actually, yes, exactly like a PHP native. But with Symfony you probably want to declare this cart as a service to use everywhere in your code base - it allows you always use a single instance of your cart and inject its service into other services. And you have to use Symfony's built-in `session` service to work with sessions inside your shopping cart service, i.e. you have to inject '@session' in it. I mean don't use low-level $_SESSION.
Hello
I have error
Some parameters are missing. Please provide them.
database_host (127.0.0.1):
database_port (null):
database_name (stripe):
database_user (root):
database_password (null):
mailer_transport (smtp):
mailer_host (127.0.0.1):
mailer_user (null):
mailer_password (null):
secret (ThisTokenIsNotSoSecretChangeIt):
> Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::buildBootstrap
> Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache
[Twig_Error_Runtime]
The "core" extension is not enabled.
Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache handling the post-install-cmd event terminated with an exception
[RuntimeException]
An error occurred when executing the ""cache:clear --no-warmup"" command:
[Twig_Error_Runtime]
The "core" extension is not enabled.
.
can you help me fix this, please?
Hey Nina
Can you tell me which version of Symfony / Twig you are installing? I believe this is a version problem between Symfony and Twig
Cheers!
Do have resolve your pbm ?
Hi,
I have some issues when I run composer install:
[RuntimeException]
An error occurred when executing the ""cache:clear --no-warmup"" command:
Fatal error: Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "LazyLoadin
gMethodInterceptor" from namespace "ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator".
Did you forget a "use" statement for "ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\LazyLoadin
gMethodInterceptor"? in C:\Users\beleiui\Documents\Symfony tutorial\Stripe\Stripe Killer Payment Processing Profit
Tutorial\practice\start\vendor\ocramius\proxy-manager\src\ProxyManager\ProxyGenerator\LazyLoadingValueHolderGenerat
or.php on line 122
Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "LazyLoadingMethodInterceptor" fr
om namespace "ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator".
Did you forget a "use" statement for "ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\LazyLoadin
gMethodInterceptor"? in C:\Users\beleiui\Documents\Symfony tutorial\Stripe\Stripe Killer Payment Processing Profit
Tutorial\practice\start\vendor\ocramius\proxy-manager\src\ProxyManager\ProxyGenerator\LazyLoadingValueHolderGenerat
or.php on line 122
Call Stack:
1.9888 20509544 1. Symfony\Component\Debug\ErrorHandler->handleException() C:\Users\beleiui\Documents\Symfo
ny tutorial\Stripe\Stripe Killer Payment Processing Profit Tutorial\practice\start\vendor\symfony\symfony\src\Symfo
ny\Component\Debug\ErrorHandler.php:0
PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "LazyL
oadingMethodInterceptor" from namespace "ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator".
Did you forget a "use" statement for "ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\LazyLoadin
gMethodInterceptor"? in C:\Users\beleiui\Documents\Symfony tutorial\Stripe\Stripe Killer Payment Processing Profit
Tutorial\practice\start\vendor\ocramius\proxy-manager\src\ProxyManager\ProxyGenerator\LazyLoadingValueHolderGenerat
or.php:122
Stack trace:
#0 [internal function]: ProxyManager\ProxyGenerator\LazyLoadingValueHolderGenerator->ProxyManager\ProxyGenerator\{c
losure}(Object(ReflectionMethod))
#1 C:\Users\beleiui\Documents\Symfony tutorial\Stripe\Stripe Killer Payment Processing Profit Tutorial\practice\sta
rt\vendor\ocramius\proxy-manager\src\ProxyManager\ProxyGenerator\LazyLoadingValueHolderGenerator.php(95): array_map
(Object(Closure), Array)
#2 C:\Users\beleiui\Documents\Symfony tutori in C:\Users\beleiui\Documents\Symfony tutorial\Stripe\Stripe Killer Pa
yment Processing Profit Tutorial\practice\start\vendor\ocramius\proxy-manager\src\ProxyManager\ProxyGenerator\LazyL
oadingValueHolderGenerator.php on line 122
Does someone have any idea what is going on?
Thank you.
Hey Beleiu!
Ah man, sorry about this! I just downloaded the start code and it works for me. But, let's debug!
First, I can tell you that this class comes from a library called "ocramius/proxy-manager", and you should see this downloaded when you run composer install. The mystery is... why is this class missing? First, to make sure there weren't any download issues, try removing the vendor directory entirely and running composer install again. Also, what version of PHP are you using? That shouldn't make a difference, but that library can be weird sometimes with PHP versions.
Let me know, and hopefully we can fix it :).
Cheers!
Hey,
The problem was at composer install, I don't know exactly why this issue occur:
"The archive may contain identical file names with different capitalization (which fails on case insensitive filesystems)"
Looks like UnZip fails to unzip packages. Very strange.
Anyway the fix was to move the project in a new folder different location and run composer install again and everything works fine.
Cheers!
Twig_Error_Runtime in ExtensionSet.php line 82:
The "core" extension is not enabled.
in the project i dont know ho to enable it
Hey Rajaona F. ,
What Twig version do you use? You can check it with "$ composer info twig/twig". You can try to upgrade dependencies, most probably it'll fix the problem. Have you tried it?
Cheers!
"Houston: no signs of life"
Start the conversation!
What PHP libraries does this tutorial use?
// composer.json
{
"require": {
"php": ">=5.5.9, <7.4",
"symfony/symfony": "3.1.*", // v3.1.10
"doctrine/orm": "^2.5", // v2.7.2
"doctrine/doctrine-bundle": "^1.6", // 1.6.3
"doctrine/doctrine-cache-bundle": "^1.2", // 1.3.0
"symfony/swiftmailer-bundle": "^2.3", // v2.3.11
"symfony/monolog-bundle": "^2.8", // 2.11.1
"symfony/polyfill-apcu": "^1.0", // v1.2.0
"sensio/distribution-bundle": "^5.0", // v5.0.22
"sensio/framework-extra-bundle": "^3.0.2", // v3.0.16
"incenteev/composer-parameter-handler": "^2.0", // v2.1.2
"friendsofsymfony/user-bundle": "~2.0.1", // v2.0.1
"stof/doctrine-extensions-bundle": "^1.2", // v1.2.2
"stripe/stripe-php": "^3.15", // v3.23.0
"doctrine/doctrine-migrations-bundle": "^1.1", // 1.1.1
"twig/twig": "^1.24.1", // v1.35.2
"composer/package-versions-deprecated": "^1.11" // 1.11.99
},
"require-dev": {
"sensio/generator-bundle": "^3.0", // v3.0.7
"symfony/phpunit-bridge": "^3.0", // v3.1.2
"hautelook/alice-bundle": "^1.3", // v1.3.1
"doctrine/data-fixtures": "^1.2" // v1.2.1
}
}
Oh one more thing..
no matter if you update this course to save my life or not.. This plattform is worth every penny !!
big thank to all of you ! 🙏🏼