Full Stack Dev
Randstad DigitalFull stack Dev
Indegene pvt ltdSr. Backend Dev
TCSDrupal Dev
CIS IndoreSr. PHP Dev
Viscus infotech PVT. LTD.Sr. Backend Dev
Relevance Lab Pvt. LtdPHP Developer
Elensoft technologies pvt. ltd
WordPress

PHP
XAMPP

MySQL

jQuery

Git

Javascript

HTML5

Ajax
REST API

Apache
Jira

Visual Studio Code
.png)
CodeIgniter

Postman

Trello

Symfony

React

Vue.js

Salesforce

Lando

Visual Studio

Apache Solr

Memcache

Splunk

SQL Server

Bugzilla

AWS Cloud

Lighthouse
.png)
Docker
.png)
Jenkins

GitHub

Bitbucket

Vagrant

Apache Solr

GitHub

AWS
Yeah. So my name is Piyush as well, and I'm known from multiple days. I'm I'm totally having, uh, 8 year experience in Drupal, and total IT experience is 10 years. Currently, I was working with, uh, client where I have, uh, my as a senior, uh, triple developer, where I have to handle the team as well as I have to work as a developer. Uh, my current role was handling the echo cloud as well as creating a component and custom models. I have a, uh, site where, uh, we have a multi multisite and, uh, integration with the multilingual, uh, where, uh, I have to where the front end is, uh, Node JS, uh, with Next JS and the Drupal we have used as API gateway. And, uh, apart from development, I'm also involved in the pipeline design. Uh, CICD means that there there is a echo cloud hosting, which have to, uh, design the CICD built to deploy node, uh, Next. Js app as well as a Drupal app. So yeah. Uh, I also expose her to work as a Kubernet and Docker Docker as well. Uh, that's it from my
Yeah. So, uh, the technique will be involved, uh, for implementing operation in PHP service interacting with the AWS resources. So we have multiple API gateway, so which provided by the AWS, uh, like, gateway APIs. And, uh, we have all the, uh, all those resources residing in the AWS, which we have to integrate, uh, using a Lambda functions. And then those, uh, API can be exposed using the, uh, secret managers and the PHP. And then PHP, we can consume those APIs. So these are the one way. And the the another way we can utilize we are utilizing the s three bucket, uh, uh, AWS resources. Like, yeah, all the images and assets will be stored in the s three bucket. Uh, and the p h as a PHP, uh, we'll be using those, uh, s three storage for storing the images and the, uh, stat uh, statics files, like JavaScript and, uh, CSS files, uh, to to improve the, uh, performance. Uh, the third one, uh, AWS resources, which are either DNS mapping and, uh, uh, DNS mapping, uh, where we can map our DNS, uh, uh, domain name server and change those server name and, uh, to configure our dev and, uh, uh, dev and production environment. And, uh, there are other another, uh, services which we are using, like, uh, uh, secret managers to store all the uh, credentials in the secret manager. So that can be used in the PHP to handling those APIs, whether it can be APIs related, whether it can be any sick, uh, secret information, which is which we should not store in the database, which we can store in the AWS, the secret manager and and, uh, uh, environment label and can be used later in the PHP. So that's it.
Yeah. So real time data syncing mechanism, we can use to, yeah, Ajax call. So Ajax will be, uh, that AJAXA is a asynchronous JavaScript mechanism where, uh, where all the real time information can be populated, uh, in a front end, uh, using a JavaScript as data will be coming from the back end, which is PHP, MySQL. And, uh, we have we have multiple methods, uh, to be used. 1 is a get method. 2nd is a post method and which can be used to fetch the data from the PHP and to, uh, show those information using a Ajax call in a front end, JavaScript. So dollar.ajax is a method. In that, we have to pass up, uh, method, either get and post. And then there is a URL parameter, URL, which will be the path of your, uh, back end back end functions and, uh, then success and, uh, success response. We have we have to check whether the so we are getting the success and the failure check, and then we can return those, um, data and handle in in in a JavaScript uh
So while, uh, while integrating JavaScript library, uh, with our Drupal module, Uh, we can have a Drupal we will use a Drupal library. Like, uh, we have to create a library uh, to include JavaScript in the module. And, uh, if we need to keep in our mind, uh, such things like that JavaScript library, which should not be in in, uh, incomparable with the uh, other library like JavaScript, uh, JS, other JavaScript library. It should be compatible with that. And also, uh, the, uh, the version of JavaScript library should be updated and latest version we have to use always. And, uh, and it should not be included in all the pages, which we have a functionality. That page only, we have to include those, uh, JavaScript libraries. So it should not, uh, include all the pages, uh, which is not use useful. And, uh, always use those library in the particular pages, which is, uh, which the the function which is getting used to, uh, so that the performance will be, uh, good, uh, good. Otherwise, it will impact other pages to load those JavaScript unnecessary and, uh, which will cause the performance issue later.
So server side rendering is, uh, uh, means we have a, uh, everything will be, uh, run on the server side, and, uh, the data will be dispatched to the client in the front and, uh, so, uh, so it will it will improve the performance as well because we are everything the logic will be in the server side we are executing, and then data will be written in the form of object in the, uh, in the front end. So this this server side ending, then we have to use where we have a a a back end, uh, backend APIs, uh, and the API is in the, uh, other server. We have to call the APIs, and the data will be coming in the JSON format and which will be rendering in, uh, uh, front end. The server side rendering where where we'll have, uh, data, and we have some calculation on the, uh, on the front end, uh, which we have to check multiple calculation on that, uh, so that and the checks on the database, so the server side rendering will be useful for the, uh, uh, uh, on that particular scenario.
Yeah. So Drupal, uh, Drupal provide REST APIs and the JSON APIs, JSON API model and the REST resource, uh, model to, uh, to create API, uh, Drupal services in the in Drupal. And, also, we can have a custom module to create a Drupal services, uh, using the resources. Uh, so using the PHP to improve the performance, we have to always, uh, use the latest version of, uh, REST APIs. And, uh, we have we should not have put lot of, uh, unnecessary calls in the into the REST API. Uh, we have whatever the logic we have, we have to reduce that into the modular way so that we can, uh, we can reduce the functions, uh, and, uh, in that way so we can we can utilize those as a performance improvement. And, uh, and, uh, let's for example, we have some common logic, which we are using in, uh, across the application. So, uh, we can create a common controller or or, uh, functions, And those those functions can be used in the the same services so multiple times. So if we are creating, uh, get services or post services, that function need to be used so we can just utilize the same functions call in the particular services. So the maintainability and the performance will be faster because we are not repeating those, uh, logic and, uh, right, set of code, uh, repetitive repetitively. We are just using the same function, uh, in, a, uh, in a, uh, in a, uh, services, uh, so that, uh, we should not, uh, write multiple times those, uh, those function calls
Uh, Yeah. So, uh, the, uh, the constant user one equal to create user where we are passing the, uh, uh, John as a first parameter and second parameter as a age. So here, I'm thinking we have to create a before the create user, we have to pass and then we have to we should have a new keyword so that, uh, it will create a a object, uh, object in the object here. And then we have we should have, uh, uh, in, uh, create user functions, which will take a name and age. And, uh, instead underscore underscore construct method where we'll collect those name and ages as a parameter. So the constructor will be automatic call whenever the, uh, uh, uh, uh, instant the the instantiation, uh, created. So there is no need to create a, uh, write a function user. Uh, in in suit of that, we can use a function underscore underscore construct method construct method. And, uh, we should also avoiding the, uh, return a new, user because, uh, this is not a good way to write new keywords inside the function. We have to use new keyword uh, before the, uh, new, uh, create user, uh, out of the functions.
So, uh, the, uh, the line where we have a if condition, uh, if dollar item category not equal to category. So here, we have to put the dollar item category equal to equal to category, then we have a Array push filter item, uh, comma, dollar item. So that it will it will check if the category equal to, uh, item category, then we have to, uh, push the element in the, uh, filtered item array. So it will have a record, uh, based on the category which we are passing. Thank you.
Yeah. So, uh, uh, writing a business logic in a Drupal module that can be tested, uh, that can be unit tested without external dependency. So in, uh, this this one, we can achieve, uh, via, um, uh, creating, unit test cases in the triple model. So for that, we have to create, uh, test, uh, unit test files uh, inside the src folder and, uh, the same, uh, as the APIs. So we, uh, you we can create a resource, uh, rest of resources, uh, folder. We can create a 1, uh, service file, and the service file will have a 1 control service controller. In that, we can write up our business logic that, uh, that service controller can be, uh, can be, uh, used as a API URL. So, uh, that that API will return, uh, either a JSON record or XML. Uh, this can be, uh, this can be logic. It will be tested without any, uh, external dependency. So we can have, uh, this kind of, uh, approach, uh, that is an API based approach where the logic, business complex logic, can be written in the form of APIs. Uh, the 2nd approach is, uh, unit test cases. So, uh, p Drupal introduces a new mechanism where you can write, uh, unit test cases in the form of, uh, API, and that can be, uh, tested without any external dependency. So, uh, there is another mechanism. There are 2 mechanisms we can write without any external, uh, dependency. Thank you.
Yeah. So AWS, uh, we have a AWS gives multiple tool, uh, to resolve the performance. Uh, 1st tool I will introduce, I will say, uh, like, CDN CDN enabled. So CDN enabled will, uh, helps Drupal to, give the resources from which is easily available content resources. So suppose for that we have to install the module called CDN, uh, CDN module, and then we have to configure the CDN URL in that so that all the, uh, assets, uh, content delivery will be, uh, easily available for the application, which is opening on the particular reason. Suppose, uh, the, uh, suppose the x user is opening the same application in the US reason. So the content will be delivered from the US reason inside inside of the India reason. So that will be handled by the AWS, uh, internally. So that is a first, uh, first mechanism, CD enable. The second is storing the, uh, static information like, uh, CSS JavaScript and images, uh, in a s three bucket. So, uh, s three bucket is, again, AWS tool, uh, where where Drupal resources can be, uh, can be stored in a s three storage. So which will also improve the performance because, uh, uh, it has a lot of, uh, capability to store the high level of data and static information in AWS. The third way is, uh, AWS scaling. So we can use the, uh, scaling of, uh, Drupal application, uh, so that performance will be a, uh, Drupal application performance will be a fast faster. And, uh, the 4th one, uh, we can use AWS, uh, like, uh, CICD pipeline. So that deployment will be faster and also it also check that code is, uh, code, uh, coding standards so we can have a coding standards installing the git level so that whenever we'll, uh, sync our, uh, git, uh, code into AWS server for deployment, it will always check the coding standard platforms. So that code will be, uh, secure and as well as the standard. So these are the way which we can use AWS tooling to improve the performance. And, also, if we have a AWS server to increase, we we can also, uh, go for the higher level of CPU storage and, uh, server so that, uh, uh, we'll have a greater performance for the application. We'll have to go for the higher level of configuration, uh, CPUs and, uh, storage as well as the MySQL, uh, data server.
So, uh, yeah. So there are, uh, 2 ways. Uh, 1 is, uh, uh, the first one approach is creating Jenkins, creating a Kubernetes platform and deploy our Docker images in the Kubernetes and using a Jenkins pipeline. So and those, uh, those and those jobs should be run-in the, uh, Jenkins, and that should be and the Kubernetes part should be created in the Jenkins server in which is the side of the AWS. So, uh, that, uh, docker based approach, we can be used. Uh, so for that, we have to write a docker images in the Jenkins job, uh, as well as the, uh, Kubernet, uh, YJML configuration, which, uh, which is in the form of YJML. So that, uh, whenever we run-in the Jenkins the c I CICD pipeline, it will pick our, uh, Kubernet, uh, Kubernet configuration, uh, which will be set aside in the GitHub. And, uh, it will, uh, it will run all the builds and, uh, create automatic, uh, parts and, which will be pushed to the AWS server, EC two instance. So the 1st the 2nd approach, we can use our uh, Jenkins CICD, uh, auto pipeline, uh, where we'll have a it will provide a GitHub code URL, which will, uh, which will, uh, authenticate, uh, we can also, uh, store the AWS secret key to, like, uh, authenticate whenever we are pushing our changes to the e c two instance. So because, uh, and, uh, we have to provide the server part, like triple w triple w, HTML, where we have to copy the, uh, GitHub code, uh, PHP GitHub PHP code into the server path. And then we have to run some set of command like composer installation and Drescher export command and the cache clear. So there is a 2 approach which we can follow.