Learn from your fellow PHP developers with our PHP blogs, or help share the knowledge you've gained by writing your own.
![Ideas to help your PHP dev team grow their skills](https:/ /cdn.filestackcontent.com/LcqSW9KZSZarYYZWaQVH)
> Your biggest asset is also your biggest risk... your developers
Your business thrives because of the incredible work and innovation of your developers. With simple keystrokes your developers can completely transform your business, add new features, and drive new sales.
But those same keystrokes can take down production, create security back doors, and put your business at risk. That's why it's more important than ever for your team members to be up to speed with the latest technology, especially around performance and security.
Of course, some things are easier said than done - after all everyone is super busy these days. So how can you help keep your team members learning, and putting your business first in the process?
## Conference Parties
There's nothing better than attending a [PHP or programming conference](https:/ /www.php.net/conferences/) in person - the chance to meet speakers face to face, to network, the knowledge, and the hallway track. However, many companies aren't able to afford multiple (or even one) conference for their developers - especially ones that require airfare and hotel.
However, that doesn't mean you shouldn't still participate in these conferences. The good news is that roughly once a quarter [Nomad PHP](/live) streams talks from a conference right to your computer. This means that your team members can all participate in a multi-day conference from the comfort of your office (or their home) - and you can provide this for your team for [less than the cost](/teams) of a single conference ticket!
Make the conference party even more special by providing lunch during the lunch break, bringing in party gifts, having give-aways during the conference, and planning activities during longer breaks for your team.
Since many conferences take place on Friday, not only are you providing invaluable training and an incredible work benefit, but ending the week on a super positive note that your team members will appreciate (and your risk assessment teams will greatly appreciate as new security practices and compliance practices are put into place).
## Monthly Lunch and Learns
Every month Nomad PHP offers [live virtual talks](/live) by the industry's top experts. With talks at 11am Pacific, and 6pm Pacific it's a perfect time to grab a conference room and order a couple pizzas for lunch (or if Eastern, grab some snacks and maybe a beer) and play the monthly meeting on the large screen.
Your team members will have the opportunity to take notes, discuss with each other, and perhaps most importantly ask the speaker real-world questions that directly impact your business, providing tangible solutions to the problems they are facing.
And since every Nomad PHP Pro meeting [is recorded](/videos), your team members can refer back to the video at any time, watching sections relevant to them or digging in for more information.
## Developer Book Club
Encourage your team members to share what they're learning with others, and help build each other up. Not only are you helping grow skills and ensure your team is following the latest best practices, but you're also fostering a mentor-mentality within your team - where each team member feels invested in the growth of other members.
With Nomad PHP you receive a new issue of [php[architect]](/books) each month and have several [additional books](/books) available to read on demand - providing the latest updates and an invaluable resource to help your book club get started.
## Developer Movie Nights
Sometimes we all just want to get away, grab some popcorn, and watch a movie. Similar to lunch and learns, give your developers a night or two where they can get together and watch one of the [250+ training videos](/videos) available on Nomad PHP. You can even make it a movie marathon!
Whether it's pizza, popcorn, sodas, beers - your team members will have the chance to kick back, relax a bit, build team camaraderie, and learn valuable skills to help your business succeed. Essentially, turning a training day into a fun team-bonding activity.
## Learning Path Challenges
Every company has challenges, and areas they need their team members to master. Whether it's [DevOps](/videos/devops) and [containerization](/videos/containerization), [security](/videos/security), [performance](/videos/performance), [management](/search/videos/soft-skills?search_query=manage), [modernization](/videos/upgrading), or [soft skills](/videos/soft-skills) - work with your team to determine what skills will help them succeed and work with your team members to put together video learning paths.
Your team members can watch through these [videos on-demand](/videos), go back and replay to refresh their knowledge, and work their way towards mastery in the subjects that will help your company succeed.
Show that you are invested in your developers by helping them earn [Professional Certification](/certification). These certifications demonstrate that your team members have a fundamental grasp of the technology they are working with and understand when and how to use this technology.
With [free certification exams](/certification) included with Nomad PHP - you no longer have to worry about failed exams or expensive test credits. Your team members can take the exams at their own pace, discover the areas they need to improve, and take the exam again when they are ready. After all, shouldn't the goal of certification be to help your developers learn these skills and prove their expertise?
You can go even further with certifications by having a special [company award](https:/ /amzn.to/359HSLd), [framing their certificate](https:/ /amzn.to/2SnEOpV), or calling out newly certified developers at team meetings or all-hands.
## Learning Incentives/ Rewards
Of course there are even more ways you can help your developers learn new skills, grow their careers, and build loyalty within your company. With Nomad PHP there are numerous ways for your team members to grow their skills, and numerous ways you can reward/ incentivize them - from rewards for the most active learner, to setting goals for learning new skills, to obtaining certifications, to attending streams, to watching videos on-demand. All of these are included with our [Professional Nomad PHP Team subscriptions](/teams).
### Want to learn more about getting a Nomad Team Subscription for your developers? Give us a call (844) CODE-PHP
**Have more ideas on how to help your developers grow their skills or help employers make education more accessible? Please leave your ideas in the comments below!**
At Nomad PHP our goal is to empower developers in building a habit of continuous learning - and that means we have a habit of continuous improvement ourselves. Here are just some of the things we've done this year (with much more coming down the road)!
## Website Redesign
We've refreshed the look and feel of Nomad PHP to better emphasize the goal of Nomad PHP - to help developers build a habit of continuous learning and grow their careers. This includes numerous usability enhancements as well as a focus on our new book library, blogs, and certification in addition to virtual meetups, workshops, conferences, and on-demand videos.
## Free Meetups
As technology has advanced, more and more meetups and usergroups are able to stream their local usergroup meetings.
As our goal has always been to make technology accessible, we are proud to provide free streaming technology for local user groups, and share local user group meetings on our live virtual meetup schedule.
Student and Professional subscribers will continue to have access to our monthly conference level Pro Talks, hands on virtual workshops, and live conference streams in addition to streams by local user groups.
You can find a list of all upcoming talks (free and Pro) on our [Live Meetings Page](/live), or [add your user group stream here](/addameetup).
## Free Subscriber Tier
As our mission has evolved from being the meetup for developers without a meetup group to building an inclusive community of PHP developers where you can network, grow your skills, and share your knowledge with others - we are excited to announce our new Free Tier.
With a free Nomad PHP account you can:
* Stream free meetups
* Watch ad-supported videos in SD
* Read PHP blogs and write your own
* Network with other PHP developers
[Create your free developer account](/signup) to get started.
## New Student Tier
To provide the best value, we've also restructured our plans to provide professional online meetings, workshops, and conference streaming to our Student Tier. This will allow students and new developers the chance to learn from the best speakers and top practioners and obtain entry level certifications at the best price possible.
However, with the addition of PHP Books and Magazines, and in order to provide the best value while keeping the Student plan affordable, new Student subscribers will not have access to the PHP Book and Magazine Library, or advanced certifications. These will now require a professional plan.
[Student plans start at $12.95/mo](/subscribe)
## PHP Books and Magazines
We're excited to announce that we have expanded our PHP library. In addition to the ability to read the latest issues of php[architect] magazine, Professional subscribers now have access to read PHP and web development books online.
We're excited to announce the availability of Chris Hartjes' book *The Grumpy Programmer's Guide to Testing PHP Applications,* as well as several titles from Notes for Professionals, and *Undisturbed REST: a Guide to Designing the Perfect API.*
More titles including exclusive titles will be made available for online reading soon.
You can view our entire [PHP Library here](/books).
## Blog Updates
We've received a lot of feedback on the blog writing process, and have upgraded several aspects of our blogging software. This includes the ability to save drafts prior to publishing, and the ability to upload, edit, and crop images and videos. We've also added some bug fixes for editing and writing code.
We're also excited to share that members with Student and Professional plans can now have their own **VLOG (video blog)** with the ability to screencast/ record video from your webcam within the blog.
To see the most recent blog posts, or write your own, visit the [Nomad PHP Blogs](/blogs).
## Certification Updates
We've updated our certifications for better usability and readability. We've also reworked some of the code samples and questions in our Level 1 PHP Certification exam.
You can find our available exams, test your skills, and obtain your Nomad PHP certification [here](/certification).
## Team Management
Our new team manager allows you to easily add or remove team members with your Nomad PHP team subscription. You'll also find real time metrics on how your team is using Nomad PHP, who on your team is investing in their growth and streaming meetups, watching videos, reading books, and earning certifications, and the overall content value consumed by your team.
The Team Manager is available to new teams, and will be made available to existing team managers over the next several weeks.
## 2020 Roadmap
There's still plenty of more great things coming in 2020. Here are the items at the top of our list:
* Mobile app for offline viewing
* Desktop app for offline viewing
* Nomad PHP member only books
* PHP Level 2 Certification
* Interactive tutorials
* Better video support in blogs
* Ability to schedule blog posts
* Meeting software for local usergroups
* Improved plan management for subscribers
**Of course, what's most important to us is what's most important to you. Leave what you want to see on Nomad PHP in the comments below and if we're able to we'll get it added to our roadmap!**
![New Beta: Transcriptions and Closed Captioning](https://images.ctfassets.net/vzl5fkwyme3u/3Cz2r74iChZbJyAFS2ydPo/f67d7369647247806bbacb8f48c9fd98/captions.png)
With the mission of making technology more accessible, I'm pleased to announce a beta of transcriptions and closed captioning on select videos.
This beta offers a more in-depth look into videos before watching them, the ability to dig into the video's text afterwards for review, and the ability to watch the video with closed captioning assistance.
Closed Captioning may be enabled on the video player by clicking the [cc] icon and selecting your preferred language (at this time, only English is supported). You may also find a transcription of the talk below the description for more insight into the talk before watching, or to find specific information/ sections afterwards for review.
![Example of Captions and Transcriptions](https://images.ctfassets.net/vzl5fkwyme3u/6O6eSdVYuCslcsrRzfmGbl/24c598e80195d4839662f2833c1cfa3c/captions-example2.png)
As our first attempt at transcriptions and closed captions, it won't be perfect, but if it is beneficial this is something we hope to bring to all future videos, and selectively add closed captioning to past videos based on demand and availability.
#### Today the following videos are available to watch with closed captioning:
* [Data Lakes in AWS](https://nomadphp.com/video/239/data-lakes-in-aws)
* [The Dark Corners of the SPL](https://nomadphp.com/video/234/the-dark-corners-of-the-spl)
* [Git Legit](https://nomadphp.com/video/233/git-legit)
* [Advanced WordPress Plugin Creation](https://nomadphp.com/video/224/advanced-wordpress-plugin-creation)
* [The Faster Web Meets Lean and Mean PHP](https://nomadphp.com/video/216/the-faster-web-meets-lean-and-mean-php)
#### Closed Captioning for Live Events
Unfortunately, at this time we are not able to offer closed captioning for live events including our monthly meetings, workshops, and streamed conferences. This is an area we are continuing to look into, and working on identifying partners to make possible in the future.
#### Providing Feedback/ Requesting Closed Captioning
If you have a specific request for a video you would like to see closed captioned, please let us know using the [Nomad PHP feedback form](https://nomadphp.com/feedback).
#### Next on the Roadmap
Also look for these new features coming over the next several months:
* Lightning talks
* Team management for team account owners
* Mobile Apps for Android/ iOS with offline viewing
![Why Cloudways is the Perfect Managed Hosting for PHP Applications](https://images.ctfassets.net/vzl5fkwyme3u/3VLCUBagZPfSLyxyt1AvvP/89e3b904a450454545eb885e2e0e76b4/cloudways.jpg?w=1000)
#### The following is a sponsored blogpost by [Cloudways](https://www.cloudways.com/en/?id=431739)
Developing an application is not the sole thing you should bank on. You must strive to find the best hosting solution to deploy that application also. The application’s speed is dependent on the hosting provider, that is why I always advise you to go for the best hosting solution to get the ultimate app performance.
Now a days, it is a big challenge to choose any web hosting, as each hosting has its own pros and cons which you must know, before considering it finally for the deployment. I don’t recommend shared hosting for PHP/Laravel based applications, because you always get lot of server hassles like downtime, hacking, 500 errors, lousy support and other problems that are part and parcel of shared hosting.
For PHP applications, you must focus on more technical aspects like caching, configs, databases, etc. because these are essential performance points for any vanilla or framework-based PHP application. Additionally, if the app focuses on user engagement (for instance, ecommerce store), the hosting solution should be robust enough to handle spikes in traffic.
Here, I would like to introduce Cloudways [PHP server hosting](https://www.cloudways.com/en/php-cloud-hosting.php?id=431739) to you which provides easy, developer and designer friendly managed hosting platform. With Cloudways, you don't need to focus on PHP hosting, but must focus on building your application. You can easily launch cloud servers on five providers including DigitalOcean, Linode, Vultr, AWS and GCE.
### Cloudways ThunderStack
Being a developer, you must be familiar with the concept of stack - an arrangement of technologies that form the underlying hosting solution.
To provide a blazing fast speed and a glitch-free performance, Cloudways has built a PHP stack, known as ThunderStack. This stack consists of technologies that offer maximum uptime and page load speed to all PHP applications. Check out the following visual representation of ThunderStack and the constituent technologies:
As you can see, ThunderStack comprises of a mix of static and dynamic caches with two web servers, Nginx and Apache. This combination ensures the ultimate experience for the users and visitors of your application.
### Frameworks and CMS
The strength and popularity of PHP lies in the variety of frameworks and CMS it offers to the developers. Realizing this diversity, Cloudways offers a hassle-free installation of major PHP frameworks including Symfony, Laravel, CakePHP, Zend, and Codeigniter. Similarly, popular CMS such as WordPress, Bolt, Craft, October, Couch, and Coaster CMS - you can install these with the 1-click option. The best part is that if you have a framework or CMS that is not on the list, you can easily install it through Composer.
### 1-Click PHP Server & Application Installation
Setting up a stack on an unmanaged VPS could take an entire day!
When you opt for Cloudways managed cloud hosting, the entire process of setting up the server, installation of core PHP files and then the setup of the required framework is over in a matter of minutes.
Just [sign up at Cloudways](https://www.cloudways.com/en/?id=431739), choose your desired cloud provider, and select the PHP stack application.
As you can see, your LAMP stack is ready for business in minutes.
Many PHP applications fail because essential services are either turned off or not set up properly. Cloudways offers a centralized location where you can view and set the status of all essential services such as:
* New Relic
Similarly, you can manage SMTP add-ons without any fuss.
### Staging Environment
With Cloudways, you can test your web applications for possible bugs and errors before taking it live.
Using the staging feature, developers can first deploy their web sites on test domains where they can analyze the applications performance and potential problems. This helps site administrators to fix those issues timely and view the application performance in real-time.
A default sub domain comes pre-installed with the newly launched application, making it easy for the administrators to test the applications on those testing subdomains. Overall, it's a great feature which helps developers know about the possible errors that may arise during the live deployment.
### Pre-Installed Composer & Git
PHP development requires working with external libraries and packages. Suppose you are working with Laravel and you need to install an external package. Since Composer has become the standard way of installing packages, it comes preinstalled on the Cloudways platform. Just launch the application and start using Composer in your project.
Similarly, if you are familiar with Git and maintain your project on GitHub or BitBucket, you don’t need to worry about Git installation. Git also comes pre-configured on Cloudways. You can start running commands right after application launch.
### Cloudways MySQL Manager
When you work with databases in PHP, you need a database manager. On the Cloudways platform, you will get a custom-built MySQL manager, in which you can perform all the tasks of a typical DB manager.
However, if you wish to install and use another database manager like PHPMyAdmin, you can install it by following this simple guide on installing [PHPMyadmin](https://www.cloudways.com/blog/installation-phpmyadmin/?id=431739).
### Server & Application Level SSH
If you use Linux, you typically use SSH for accessing the server(s) and individual applications. A third-party developer requires application and server level access as per the requirements of the client. Cloudways offers SSH access to fit the requirements of the client and users.
### PHP-FPM, Varnish & Cron Settings
Cloudways provides custom UI panel to set and maintain PHP-FPM and Varnish settings. Although the default configuration is already in place, you can easily change all the settings to suit your own, particular development related requirements. In Varnish settings, you can define URL that you want to exclude from caching. You can also set permissions in this panel.
Cron job is a very commonly used component of PHP application development process. On Cloudways platform, you can easily set up Cron jobs in just a few clicks. Just declare the PHP script URL and the time when the script will run.
### Cloudways API & Personal Assistant Bot
Cloudways provides an internal API that offers all important aspects of the server and application management. Through Cloudways API, you can easily develop, integrate, automate, and manage your servers and web apps on Cloudways Platform using the RESTful API. Check out some of the [use cases developed](https://www.cloudways.com/blog/category/use-cases/api/?id=431739) using Cloudways API. You just need your API key and email for authentication of the HTTP calls on API Playground and custom applications.
Cloudways employs a smart assistant named CloudwaysBot to notify all users about server and application level issues. CloudwaysBot sends the notifications on pre-approved channels including email, Slack and popular task management tools such as Asana and Trello.
### Run Your APIs on PHP Stack
Do you have your own API which you want to run on the PHP stack? No problem, because you can do that, too with Cloudways! You can also use REST API like [Slim](https://www.cloudways.com/blog/simple-rest-api-with-slim-micro-framework/?id=431739&utm_source=phpjabber&utm_medium=referral), [Silex](https://www.cloudways.com/blog/create-rest-api-silex/?utm_source=phpjabber&utm_medium=referral&id=431739), [Lumen](https://www.cloudways.com/blog/creating-rest-api-with-lumen/?utm_source=phpjabber&utm_medium=referral&id=431739), and others. You can use APIs to speed up performance and require fast servers with lots of resources. So, if you think that your API response time is getting slower due to the large number of requests, you can easily scale your server(s) with a click to address the situation.
### Team Collaboration
When you work on a large number of applications with multiple developers, you need to assign them on any specific application. Cloudways provides an awesome feature of team collaboration through which you can assign developers to specific application and give access to them. You can use this tool to assign one developer to multiple applications. Through team feature, you can connect the team together and work on single platform. Access can be of different type; i.e. billing, support and console. You can either give the full access or a limited one by selecting the features in Team tab.
### Final Words
Managed cloud hosting ensures that you are not bothered by any hosting or server related issues. For practical purposes, this means that developers can concentrate on writing awesome code without worrying about underlying infrastructure and hosting related issues. Do [sign up](https://www.cloudways.com/en/?id=431739) and check out Cloudways for the best and the most cost-effective cloud hosting solution for your next PHP project!
![Custom extension to Laravel Application class](https://images.ctfassets.net/vzl5fkwyme3u/505z7itnLO8suUC6oGMmKq/fa48e59682497e2480e9f1822ec8a498/AdobeStock_184180246.jpeg?w=1000)
Hello folks! This post is for those of you using Laravel. This beautiful framework makes web development super-easy compared to most of competitors. In the heart of Laravel is the Application class, which is responsible for bootstrapping, registering services and also serves as a dependency injection container. What I do with my Laravel apps, is that I take a slight detour from the common path by adding a custom Application class. While this is not really necessary, I find this approach nice, and will try to share my thought below.
It's normal practice in Laravel world to build all kinds of objects like this:
$cache = app("cache");
I find it a bit confusing to call `app("cache"")` and expect a `Cache\Repository` instance as result. If I pass the result of this call to a function that requires a `Cache\Repository` as parameter, I will probably have a code inspection warning from IDE. Moreover, if I want proper autocompletion, I will have to add additional comment:
/ ** @var \Illuminate\Contracts\Cache\Repository */
$cache = app("cache");
This is where a custom application class might be handy:
class MyApp extends Application
public function cacheRepository(): Repository
This way I get a `TypeError` in case of a misconfiguration, and I have a type-hint which allows the IDE to recognize the return value. Bye-bye nasty comment lines and IDE warnings! I make a method per service, with type-hints, like `dbConnection()` or `viewFactory()` - works really well for me!
I also thought that, if I have a custom class, then all the custom setup that normally you have in `bootstrap/app.php`, should reside in that custom class:
class MyApp extends Application
public function __construct()
define("APP_ROOT", realpath(__DIR__ . "/../"));
private function setUp()
/ / all the stuff from bootstrap/app.php, goes here
Then your `bootstrap/app.php` becomes just this:
return new \App\MyApp;
The Laravel `app()` function will also return an instance of MyApp from now on. However, it's @phpdoc says it returns `\Illuminate\Foundation\Application`, so for better clarity, I also added my own accessor method:
class MyApp extends Application
public static function app(): self
/ ** @var self $ret */
$ret = parent::getInstance();
I tend to limit the use of global/static functions and methods, but sometimes it can be handy, and whenever I need an instance of MyApp, I just call `MyApp::app()`. The IDE wil be aware of the return type due to the type-hint, so I get everything I want for clean and clear development.
With your projects in Laravel, you may or may not want to follow this particular advice, but just be aware that extending a framework built-in classes for your team's comfort, is definitely something that can make your life easier. See you around, don't forget to leave comments!