All Projects → codereviewvideos → symfony3-wallpaper-website-tutorial

codereviewvideos / symfony3-wallpaper-website-tutorial

Licence: other
Symfony 3 beginner friendly wallpaper website tutorial series

Programming Languages

PHP
23972 projects - #3 most used programming language
HTML
75241 projects
ApacheConf
554 projects

Projects that are alternatives of or similar to symfony3-wallpaper-website-tutorial

api.symfony-3.crud
Symfony 3 and FOS REST Bundle - CRUD API
Stars: ✭ 15 (-25%)
Mutual labels:  symfony3, symfony-application
docker-symfony
Docker Symfony (PHP-FPM - NGINX - MySQL - MailHog - Redis - RabbitMQ)
Stars: ✭ 32 (+60%)
Mutual labels:  symfony-application
rothenberg
Rothenberg allows a developer to create or maintain a Symfony application or bundle very easily and without installing anything on his workstation.
Stars: ✭ 25 (+25%)
Mutual labels:  symfony-application
opensalt
Standards Alignment Tool
Stars: ✭ 39 (+95%)
Mutual labels:  symfony-application
ypereirareis.github.io
DevOps, Symfony and VueJs developer. Articles and experiences on docker, grafana, prometheus, RabbitMQ, PHP, MySQL, Admin, Nginx, Haproxy, SSH,...
Stars: ✭ 15 (-25%)
Mutual labels:  symfony3
ResidenceCMS
Open Source Property Management System based on Symfony 6
Stars: ✭ 75 (+275%)
Mutual labels:  symfony-application
symfony-docker
A template for new Symfony applications using Docker: ./install.sh && 🚀
Stars: ✭ 34 (+70%)
Mutual labels:  symfony-application
SemartSkeleton
Symfony Skeleton
Stars: ✭ 49 (+145%)
Mutual labels:  symfony-application
banditore
Banditore retrieves new releases from your starred GitHub repositories and generate an Atom feed with them.
Stars: ✭ 118 (+490%)
Mutual labels:  symfony-application
symfocommerce
Symfony 3 framework based ecommerce (eshop) project
Stars: ✭ 25 (+25%)
Mutual labels:  symfony3
bzion
A League Management System designed for BZFlag leagues and tournaments.
Stars: ✭ 20 (+0%)
Mutual labels:  symfony-application
zusam
Private groups to share messages, photos, videos, links with friends and family.
Stars: ✭ 79 (+295%)
Mutual labels:  symfony-application
physbook
Social extranet for Arts et Métiers ParisTech students
Stars: ✭ 18 (-10%)
Mutual labels:  symfony-application
symfony-realworld-example-app
Symfony 5 codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the RealWorld spec and API.
Stars: ✭ 89 (+345%)
Mutual labels:  symfony-application
EasyAuditBundle
A Symfony Bundle To Log Selective Events
Stars: ✭ 84 (+320%)
Mutual labels:  symfony3
php-framework-benchmark
php framework benchmark (include laravel、symfony、silex、lumen、slim、yii2、tastphp etc)
Stars: ✭ 17 (-15%)
Mutual labels:  symfony3
standard-edition
The "Symfony CMF Standard Edition" distribution
Stars: ✭ 117 (+485%)
Mutual labels:  symfony-application
managed-edition
Contao Managed Edition
Stars: ✭ 15 (-25%)
Mutual labels:  symfony-application
firebase-php-examples
Example Firebase Symfony application using the Firebase PHP Admin SDK
Stars: ✭ 64 (+220%)
Mutual labels:  symfony-application
swoole-server-bundle
No description or website provided.
Stars: ✭ 15 (-25%)
Mutual labels:  symfony3

Symfony3 Beginner Friendly Tutorial

In this Symfony 3 tutorial series we are going to expand on the knowledge we've gained during the previous course - the "Symfony 3 for Beginners" tutorial.

In this tutorial we are going to takes a hands-on approach to building a Wallpaper / Desktop Background sharing website. These websites were particularly popular a few years back, but regardless of how "cool" they are currently, I believe they make an interesting example of a website that we can take from idea to production / online in a very short space of time.

This short feedback loop is a brilliant motivator in getting started, but more importantly, in finishing.

There's nothing more demotivating than having a bunch of projects sat on your hard disk at various states of completion - 10% done is as good as 90% done if you never see your projects through to completion.

Now, as mentioned, perhaps a wallpaper / desktop background site as our example isn't doing it for you. Don't be discouraged, as without too much alteration this very same foundation could be repurposed as a real estate listing site, or a personal photography portfolio, or if image heavy sites aren't your thing, then a job listings site.

The point here is not to cover how to make a wallpaper / desktop background site. The end product is simply a nice bonus of expanding our knowledge of Symfony, and continuing our learning into what the Symfony framework can offer.

The outcome of this course is to:

  • Continue our exploration of the Symfony framework
  • Build something we can show others
  • Have a base for learning some really cool stuff (keep reading)

This course is split into three parts.

In this first part we are going to focus on getting the MVP (minimum viable product) up and running. There's a lot to learn along the way, with plenty of new concepts to cover.

The only requirement to get started is to have complete the "Symfony 3 for Beginners" tutorial, or have the equivalent knowledge.

One thing I have found is that the more I learn about software development, the more I desire perfection before I release my projects into the wild. Outside of a learning environment, this is incredibly counter productive for two major reasons:

  • Perfect software with no audience is a waste of time
  • Without an audience you have no urge to improve

Let's quickly address these two before going further.

"Perfect software with no audience is a waste of time" - I would hazard a guess that we all wish to make our code the best, the most clean, the most extensible and maintainable that we can achieve. There's nothing wrong with this from a theoretical standpoint, but sooner or later we must ship our code.

So long as the site works, our visitors don't care if we shaved point 2 nanoseconds off our foreach loop. They also don't care if we wrote our site as a mess of procedural spaghetti, or the neatest example of MVC known to human kind.

This isn't to say we won't be doing things to the best of our ability throughout this course. However, it is the reason that we are going with Symfony and Twig, as opposed to building out a full JSON API with a React front end.

After all, it's better to get something online even if it's a little rough around the edges, rather than having yet another unfinished project littering up our hard disk.

"Without an audience you have no urge to improve" - Once our site is online, hopefully we will have some visitors come by and check it out. Seeing as we know how to do so, we could add a "Contact Form" and let our visitors tell us exactly what they think of our amazing creation (shields up!).

If given the chance, visitors to our site will - hopefully - give us feedback / suggestions / ideas that we may never have dreamed up. I know that's been the case for me with CodeReviewVideos.

As an example of this, we might want to add in some simple statistics to our website. Sure, we can add in Google Analytics without too much fuss, but what if we wanted to track page visits to our various wallpapers / categories?

There's a bunch of ways we could do this. And these sorts of improvements will be the focus of the second part of this series.

To give you a sneak peak into this part of the course, we might start off by creating a query that updates a counter in our database whenever a visitors hits our page. This is the sort of thing that actually works really well, to begin with. But as our site visitor count grows in number, this solution may no longer be suitable, so we will cover alternatives such as using Redis, and RabbitMQ.

For the final part of the series, we are going to take our MVP and re-write it using Test Driven Development techniques. What's most interesting about this is that the code we create when using TDD is often subtly different from that which we create without concerning ourselves with tests.

There's plenty to cover along the way, so without further ado, let's get started.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].