CakePHP vs GraphQL: What are the differences?
What is CakePHP? The Rapid Development Framework for PHP. CakePHP makes building web applications simpler, faster, while requiring less code. A modern PHP 7 framework offering a flexible database access layer and a powerful scaffolding system.
What is GraphQL? A data query language and runtime. GraphQL is a data query language and runtime designed and used at Facebook to request and deliver data to mobile and web apps since 2012.
CakePHP and GraphQL are primarily classified as "Frameworks (Full Stack)" and "Query Languages" tools respectively.
"Open source" is the top reason why over 34 developers like CakePHP, while over 61 developers mention "Schemas defined by the requests made by the user" as the leading cause for choosing GraphQL.
CakePHP and GraphQL are both open source tools. GraphQL with 11.7K GitHub stars and 752 forks on GitHub appears to be more popular than CakePHP with 7.88K GitHub stars and 3.4K GitHub forks.
StackShare, Twitter, and Intuit are some of the popular companies that use GraphQL, whereas CakePHP is used by EventManager-Online.com, Swat.io, and Gymglish. GraphQL has a broader approval, being mentioned in 541 company stacks & 715 developers stacks; compared to CakePHP, which is listed in 66 company stacks and 27 developer stacks.
What is CakePHP?
What is GraphQL?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
What are the cons of using CakePHP?
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
We are starting to build one shirt data logic, structure and as an online clothing store we believe good ux and ui is a goal to drive a lot of click through. The problem is, how do we fetch data and how do we abstract the gap between the Front-end devs and backend-devs as we are just two in the technical unit. We decided to go for GraphQL as our application-layer tool and Prisma for our database-layer abstracter.
GraphQL makes fetching of data less painful and organised.
GraphQL gives you 100% assurance on data you getting back as opposed to the Rest design .
GraphQL comes with a bunch of real-time functionality in form of. subscriptions and finally because we are using React (GraphQL is not React demanding, it's doesn't require a specific framework, language or tool, but it definitely makes react apps fly )
Writing revolvers can be fun, but imagine writing revolvers nested deep down, curry braces flying around. This is sure a welcome note to bugs and as a small team we need to focus more on what that matters more. Prisma generates this necessary CRUD resolves, mutations and subscription out of the box.
We don't really have much budget at the moment so we are going to run our logic in a scalable cheap and cost effective cloud environment. Oh! It's AWS Lambda and deploying our schema to Lambda is our best bet to minimize cost and same time scale.
We are still at development stage and I believe, working on this start up will increase my dev knowledge. Off for Lunch :)
I just finished a web app meant for a business that offers training programs for certain professional courses. I chose this stack to test out my skills in graphql and react. I used Node.js , GraphQL , MySQL for the #Backend utilizing Prisma as a database interface for MySQL to provide CRUD APIs and graphql-yoga as a server. For the #frontend I chose React, styled-components for styling, Next.js for routing and SSR and Apollo for data management. I really liked the outcome and I will definitely use this stack in future projects.
We are always building new features and replacing old code at StackShare. Lately we have been building out new features for the frontend, and removing a lot of old jQuery code (sorry jQuery but it's time to go).
As we've moved towards the above tech, its really made smashing out new features and updating legacy code super fast, and really fun!
We recently switched from MongoDB and the Python library MongoEngine to PostgreSQL and Django in order to:
- Better leverage GraphQL (using the Graphene library)
- Allow us to use the autogenerated Django admin interface
- Allow better performance due to the way some of our pages present data
- Give us more a mature stack in the form of Django replacing MongoEngine, which we had some issues with in the past.
MongoDB was hosted on mlab, and we now host Postgres on Amazon RDS .
Using GraphQL for queries and mutation on React app and Prisma database is so cool, easy and fast to learn. i often use Apollo client to integrate both ends. Most times working has a frontend developer and trying to build a MVP product quickly requires tools that require less setup on both production and development in order to test functionalities, and using GraphQL for queries surpasses Rest queries for me because of the flexibility in requesting the data you actually need and not requesting the whole dataset everytime.
But in all, Rest is still the king since most public api support its CRUD processes more than GraphQL but lot of top companies are using it and am definitely using it for various project including my recent pet project(Delivery buddy - A platform that allows pair-to-pair delivery service).
Have been working on a side project that focuses on sharing economy, allowing users to pickup and deliver groceries for others. Have already started working on the frontend for the web dashboard using React and plan to use React Native for the mobile app. But am in a dilemma, whether to build the backend myself for the MVP or use firebase for the backend. I need advise, has anyone use Firebase for such project and what are the pros and cons, what issues will i faced.
Note: My proposed stack for the backend is a Prisma database, GraphQL , Apollo and ExpressJS
Thanks in advance to everyone.
In my last side project, I built a web posting application that has similar features as Facebook and hosted on Heroku. The user can register an account, create posts, upload images and share with others. I took an advantage of graphql-subscriptions to handle realtime notifications in the comments section. Currently, I'm at the last stage of styling and building layouts.
For the #Backend I used graphql-yoga, Prisma, GraphQL with PostgreSQL database. For the #FrontEnd: React, styled-components with Apollo. The app is hosted on Heroku.
We recently implemented GraphQL because we needed to build dynamic reports based on the user preference and configuration, this was extremely complicated with our actual RESTful API, the code started to get harder to maintain but switching to GraphQL helped us to to build beautiful reports for our clients that truly help them make data-driven decisions.
Our goal is to implemented GraphQL in the whole platform eventually, we are using Graphene , a python library for Django .
I've been using Django for quite a long time and in my opinion I would never switch from it. My company is currently using Django with REST framework and a part in GraphQL using Graphene. On the frontend we use Next.js and so far everything has been running quite good. I've found limitations but manage to solve it.
As someone mentioned before, if you are comfortable with Django, don't switch. There's no need since with django you can basically achieve anything. Of course this will depend on the project you want to build, but the scalability and flexibility django can offer it's just out of this world. (Don't want to sound like a fan boy haha but it really is).
The main pro of CakePHP is "bake" functionality and use of conventions, which, if you follow them and buy into them you can really create some complex, large applications quite fast. Faster than any other PHP framework I've ever used, and I've tried all the popular ones.
However, my issues with Cake are as follows:
The ORM is slow. Slower than many of the alternatives. It's queries sometimes do strange things like querying 2 tables separately instead of using a join and I've often faced memory issues stemming from the ORM.
The code conventions, while since 3 they have adopted PSR-2 are still a long way to go to being as compliant with the many PSRs as say, Laravel and Symfony. For example the controllers have an "initialize" method which is doing what you would/should do in __construct. Bugs me.
The template layer needs to be Twig and not the ctp one. This is where the conventions fall apart and I've seen controller code, and tonnes of php logic in views because ctp offers nothing useful, unlike twig or blade templates which are very clean in comparison.
That said I work on a project with hundreds of models and controllers and it holds up really well. I couldn't imagine the same application in Laravel or Symfony. It would be a mess.
CakePhp has is own Comunity and its very coprative they helpd me lot wen i wind no way to resolve a problem then i go for googling and Stack OverFlow but when we could not find any answer then we have to just post and shere issue with CakePhp Community and get answer Shortly
CakePHP is used because it is a very feature-complete, battle-tested rapid development framework. This saves us months of development time because the API's do most of the work. There is also an extensive plugin and community built around this platform.
GraphQL will be used as the public API for the data persistence layer. It communicates nicely with all other languages and can provide API responses in the format specified in the request.
CakePHP is one of the most mature and developed PHP Frameworks available, it brings order to Chaos and the core team are a decent bunch of people who really care about the project
Applied GraphQL in a side-project I'm currently working on. Using the Apollo GraphQL implementation for both server-side and React client.
From Magento 2.3 GraphQL is provider by a core implementation, this is used to implement PWA frontend.