پی اچ پی

بررسی کارهای انجام شده

Whatcha Working On

Most of the lessons here at Laracasts boil down to rehearsed presentations. The reality, however, is that we all spend a lot of time tinkering, visiting StackOverflow, and debugging error messages.

In this series, each episode will spotlight a small piece of workflow for what I happen to be working on in real life. This might be an open source project, the Laracasts codebase, or something entirely new. As you'll find, we're less interested in A-Z education, and more focused on real-life workflow.

سطح حرفه ای 41 جلسه آموزشی 11:06:00 ساعت
قسمت 1

Laravel Test Helpers for Selenium

The test helpers in Laravel 5.2 provide a beautiful, fluent API for integration testing your applications. However, these tests are triggered in memory, which means you don't get JavaScript execution out of the deal. When such tests are necessary, yo...

قسمت 2

Elixir Refactoring

Today, I'm working on a bit of refactoring for the Laravel Elixir codebase. In this lesson, come along, as I experiment with a particular refactor - which will hopefully organize things a bit more cleanly. View the commit from this episode here, o...

قسمت 3

Adding Featured Content

There's nothing too fancy in this episode. We need to take the "most recent series" section on the Laracasts home page, and turn it into a curated, featured list. Along the way, we'll discuss the value in not over-doing tasks like this. While we coul...

قسمت 4

Turbolinks with Laravel

Today, I'm tinkering around with Turbolinks, which was recently - at the time of this writing - extracted to its own library that may be used anywhere. It's pretty sweet! Drop it in, and it instantly begins working. All anchor links clicks will be in...

قسمت 5

Elixir Webpack Plugins

Today, I'm personally working on a particular GitHub issue that revolves around hooking into Elixir's default Webpack configuration. Want to come along?

قسمت 6

How to Animate an Object Along a Circle With CSS

Why don't all Laracasts videos focus on PHP and Laravel? Because that's not real life. Sure, sometimes you need to write server-side code. But, at other times, you're tasked with animating an object along a freaking circle. So let's figure out how.....

قسمت 7

Working With the Simplecast API

As part of the Laracasts refresh that I'm currently working on at the time of this recording, I need a dedicated page for my "Laracasts Snippet" podcast. In this episode, as an example, we'll create a brand new project, fetch my podcast feed using Si...

قسمت 8

A Webpack-Only Elixir

What I'm working on today is a potential new/separate version of Laravel Elixir that exclusively uses Webpack, rather than Elixir. In this episode, rather than writing code, we'll talk about why I'm working on this, and what the potential benefits ar...

قسمت 9

Dynamic Asset Paths Using TDD

For this new version of Laravel Mix (the evolution of Laravel Elixir) that I'm working on, I need to create a single PHP function that can dynamically calculate the correct path to an asset, such as a script or stylesheet. This should work, regardles...

قسمت 10

How I Personally Learn: Dusk Edition

This episode will be a bit different. Come along, as I personally learn how to use Laravel Dusk (Laravel's new acceptance testing package) completely from scratch. While most lessons at Laracasts are edited to be as succinct as possible, this one is...

قسمت 11

Testing Implementation Details

It's very easy to fall into one particular testing trap. Are you testing your public interface, or the underlying implementation details? If you've ever noticed that any change to your code requires updates to their respective tests, take a moment an...

قسمت 12

An Ad Component

Today, I'm implementing a small ad-strip below Laracasts videos for guest users who aren't officially subscribed to Laracasts. Hey, it helps pay the bills, okay? Now, I've received basic instructions about the company's JSON API, but haven't implemen...

قسمت 13

Coupon Generation With TDD

In this episode, I'm working on the Laracasts codebase. Specifically, I need a simple way to quickly generate single-use coupon codes, save them to the database, push them to Stripe.com, and then fire off an email to the recipient of the coupon. Let'...

قسمت 14

Make Sure the Dang Thing Works

Today, I'm finishing up the 1.0 release of Laravel Mix. If you'd like to come along, I need to flesh out a few more end-to-end tests for the project. In many ways, these are far and away the most important tests you can write. Nobody cares that your...

قسمت 15

Vue and Turbolinks Sitting in a Tree

Vue is fantastic. Turbolinks is, too. So what if we could find a way to use them together seamlessly. Well, out of the box that can be a bit tricky, due to a few reactivity and caching issues. Luckily, though, this problem seems to have been solved....

قسمت 16

Incredibly Fast Instant Search With Algolia and Vue

During Laracon 2017, Maxime Locqueville demoed Algolia's excellent new Vue InstantSearch package. After watching this presentation, very quickly, I realized that I needed to improve the forum search functionality here at Laracasts. So come along as...

قسمت 17

High-Level Overview of the Laracasts Search Integration

In the previous episode, together, we figured out how to use Algolia's Vue InstantSearch component package. At the conclusion, I noted that I would implement it for Laracasts. That process is now done, so come along as I provide a high-level overview...

قسمت 18

Please Come Back

Today, I'm working on the Laracasts codebase, itself. We need to fire off a "Please Come Back" email, each day, to all users who canceled their account two months ago. In this episode, we'll use TDD to drive out this logic from scratch.

قسمت 19

Refactoring in the Real World

Today, I'm working on an old package of mine that converts PHP variables to the proper JavaScript syntax. There are a number of refactorings we can perform to clean up the codebase a good bit. Why don't you come along, and we'll work through the code...

قسمت 20

Refactoring in the Real World: Part 2

In the previous episode, we took a few good steps toward cleaning up the codebase. But I bet, if we think hard, we can take things even further. Let's finish up our full refactor in this episode. See the completed source code on GitHub.

قسمت 21

Learn Vuex With Me: Part 1

Far and away, the most frequently requested subject material at Laracasts is a review of Vuex. However, I've been hesitant to oblige in the last year. I'm not sold yet. As such, these next few videos will be a bit unique. Rather than serving as an en...

قسمت 22

Learn Vuex With Me: Part 2

We're starting to wrap our heads around the basic concept of Vuex, so let's continue on in this episode with a review of getters and actions.

قسمت 23

Learn Vuex With Me: Part 3

Now that we have a firmer grasp of the fundamentals, let's work through one of the vuex example projects. We'll build your typical, boring todo app. This should give us a better understanding of how to organize the Vuex store, and delegate to it from...

قسمت 24

Filling In Missing Tests

Today, I need to add a missing test for a recent Laravel Mix PR that we merged. Even though I'm sure the PR code is correct, it's important that we fill it in with a test to ensure, for the lifetime of the project, that this piece of functionality do...

قسمت 25

A Countdown Vue Component

Today, I need to whip up a countdown timer for an upcoming sale. While we could pull in a dedicated plugin for this functionality, it's fairly simple to implement on our own with Vue. Come along, as I knock it out in this episode. View the source...

قسمت 26

Vue Modals, Spinners, and Tailwind

In this episode, come along as I prepare a login modal from scratch. As it turns out, this will provide a number of useful real world examples for us to work through. How do you display and hide a modal from anywhere in your app? Can we display valid...

قسمت 27

Refactoring to Mix Plugins

In this episode, I'll outline my thought process behind a Laravel Mix codebase refactor that I'm currently working. We'll address the areas that I've determined to be problematic, and then discuss and review the solution I've come up with to make eac...

قسمت 28

Feature Testing Real JavaScript

If you don't mind, let's continue on from the previous episode, where we reviewed a plugin refactoring for the Laravel Mix codebase. In this episode, I'd like to verify that this approach can be used by any author to introduce new functionality into...

قسمت 29

Custom 404 Pages and the Borg

Come along, as I upgrade the Laracasts 404 page from Laravel's default view to something a bit more special. In this episode, you'll learn how to override the default 404 view, render AfterEffects animations with Airbnb's Lottie library, and then wri...

قسمت 30

Improved Refactoring and Responsibilities

Today, I'd like you to come along as I refactor a class with too many responsibilities. Once we've found and addressed the issue, we'll prepare a series of tests to confirm our new desired public API and protect our refactoring against any potential...

قسمت 31

Focus on Small Refactors

In this episode, we'll work through a refactor of the "Browse" page here at Laracasts. I've tweaked the code just enough to give us a variety of small refactors to work on. And "small" is key for this lesson. Specifically, we'll focus on indentation,...

قسمت 32

Vue Convenience Components

In this lesson, come along as I refactor my "slide up" modal Vue components. The goal will be to ensure that future modals will be as simple and intuitive as possible to construct and configure.

قسمت 33

Mentionable Usernames with TDD

For the next version of the Laracasts forum, we offer a small feature that provides @username autocompletion when writing a new reply. To populate this list of usernames, we reference the conversation owner, every person who has left a reply, and al...

قسمت 34

Publishing Beta Releases to NPM

In this episode, come along as I, in real-time, publish the beta release of Laravel Mix 4 to GitHub and NPM. This new version of Mix catches us up to webpack 4, Babel 7, and vue-loader 15. As part of that update, however, a number of code changes wer...

قسمت 35

Commentable Workshop

To save time, Laracasts originally used Disqus for its video comments section. However, it's time to migrate to a native solution that is better connected to your user profile. Come along as I use TDD to begin constructing the API for a new threaded...

قسمت 36

Frontend Authorization Brainstorming

Laravel's Policy classes are incredibly useful for managing authorization logic for your models. But what happens when we require authorization on the frontend - perhaps within a Vue component? Let's review three approaches that you might consider.

قسمت 37

The Smallest Feature We Can Implement in Seven Minutes

I thought you might like to come along, as I implement a tiny feature for the Laracasts video page. If a user edits their comment, we need to track this change and display a (edited) flag next to their username. This provides a small heads-up that th...

قسمت 38

How to Dynamically Inline SVG Files in Vue Components

Imagine that you need to iterate over a list of items and render the contents of an SVG icon for each. With PHP, this is a cinch. We only need to append the .blade.php extension to each file. Then, we can dynamically @include the necessary SVG file....

قسمت 39

چیزهایی که من از ابزار Cypress یاد گرفتم

I dedicate half of most Fridays to learning new techniques, tools, and libraries. This week, that tool is Cypress: an excellent acceptance testing framework. In this episode, if you'd like to hang out with me, come along as I discuss what I learned a...

قسمت 40

چیزهایی که من از ابزار Cypress یاد گرفتم: روز دوم

In the previous episode, we discussed everything I learned about Cypress.io on my first day. In this lesson, we'll move on to day two. I learned about additional assertions, contexts, database seeding, custom HTML data attributes, the Cypress dashboa...

قسمت 41

Beware of the Filtered Array

I recently ran into a nasty little bug in the Laracasts codebase that took me a while to track down.

دوره در حال اجرا

این دوره هنوز به پایان نرسیده است و در آینده درس های دیگری به آن افزوده خواهد شد.