• Stars
    star
    146
  • Rank 252,769 (Top 5 %)
  • Language
    PHP
  • License
    MIT License
  • Created over 5 years ago
  • Updated about 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

⚗️ Modules in PHP with the `import` and `export` syntax

Yorn Preview

Build Status Total Downloads Latest Version License

Modules in PHP with the `import` and `export` syntax.

Yorn was carefully crafted to introduce the support for modules in PHP with the import and export syntax. It was created by Nuno Maduro.

Before the quick start, keep in mind that a module usually contains a collection of functions, and those functions are small units of independent, reusable code that is desired to be used as the building blocks in creating a PHP application.

As example, this is how a typical Yorn application would look like:

# src/math/sum.php:
<?php export(function ($one, $two) {
    return $one + $two;
});

# src/index.php:
<?php

$sum = import('math/sum');

echo $sum(1, 2);

🚀 Quick start

Remember, this is just an experiment. Don't use this in production.

# First, install:
composer require nunomaduro/yorn

Exporting a function

Any function can be exported by using the export function:

# src/validators/zipCodeValidator.php:
<?php export(function (string $value) {
    return strlen($value) === 5;
});

Importing a function

Importing is just about as easy as exporting from a module. Importing an exported declaration is done through using one of the import forms below:

# src/index.php
<?php

$zipCodeValidator = import('validators/zipCodeValidator');

echo $zipCodeValidator(8000);

Default exports

Of course, you may want to import all functions in a module:

# src/index.php
<?php

$validators = import('validators'); // zipCodeValidator is imported also here

$zipCodeValidator = $validators->zipCodeValidator;

echo $zipCodeValidator(8000);

💖 Support the development

Do you like this project? Support it by donating

Yorn is open-sourced software licensed under the MIT license.

More Repositories

1

phpinsights

🔰 Instant PHP quality checks from your console
PHP
5,265
star
2

larastan

⚗️ Adds code analysis to Laravel improving developer productivity and code quality.
PHP
4,882
star
3

collision

💥 Collision is a beautiful error reporting tool for command-line applications
PHP
4,497
star
4

termwind

🍃 In short, it's like Tailwind CSS, but for the PHP command-line applications.
PHP
2,269
star
5

laravel-console-menu

🔘 Beautiful PHP CLI menus. Is a php-school/cli-menu wrapper for Laravel/Artisan Console Commands
PHP
794
star
6

skeleton-php

⚡️ This package provides a wonderful PHP skeleton to start building your next package idea.
PHP
647
star
7

laravel-desktop-notifier

💻 Send notifications to your desktop from your Laravel Artisan Commands. An JoliNotif wrapper for Laravel.
PHP
415
star
8

laravel-mojito

🍹 A lightweight package for testing Laravel views in isolation
PHP
373
star
9

pest

This repository contains an old version of PEST. A new and better version is being coded in private and will be out soon: https://github.com/pestphp/pest.
343
star
10

patrol

Patrol is an elegant command-line tool that keeps your PHP Project's dependencies in check.
PHP
266
star
11

laravel-console-task

✅ Laravel Console Task is a output method for Laravel Console Commands.
PHP
252
star
12

awesome-php-src

🚀 A curated list of awesome resources related to PHP source code
224
star
13

curryable

An elegant and simple curry(f) implementation in PHP.
PHP
175
star
14

dd

✨ The most popular way of debugging in PHP is now available in JavaScript.
JavaScript
159
star
15

laravel-console-dusk

Laravel Console Dusk allows the usage of Laravel Dusk in Laravel/Laravel Zero artisan commands.
PHP
144
star
16

laracon-schedule

👨🏻‍🚀 A command-line tool that gives you the @LaraconOnline schedule in your timezone. 🚀
PHP
101
star
17

laravel-pot

Provides Artisan commands to inspect Laravel Application's container. 🪴
PHP
88
star
18

mock-final-classes

🏄‍♂️ Allows mocking final classes in PHP.
PHP
83
star
19

awesome-laravel-vapor

🚀 A curated list of awesome resources related to Laravel Vapor.
80
star
20

laravel-console-summary

📖 Beautiful Laravel Console Summary for Artisan or Laravel Zero.
PHP
62
star
21

collision-adapter-symfony

Collision's adapter for Symfony applications. Error Reporting for console/command-line PHP applications.
PHP
45
star
22

dig

👨🏻‍🎨 A beautiful debug tool for the command line.
PHP
40
star
23

laravel-any

🏓 Laravel collection macro that determine if `any` item from the collection passes the given truth test.
PHP
38
star
24

nunomaduro.com

Rust
34
star
25

skeleton-c

⚡️ This package provides a wonderful C skeleton to start building your next package idea.
Makefile
33
star
26

php-interminal

PHP Interminal is a command-line tool that gives you access to PHP Internals discussions in your terminal.
PHP
32
star
27

bombe

Bombe is a tool for benchmarking the given url response status and response time.
C
23
star
28

skeleton-js

👨🏻‍💻 A skeleton repository for my open source JavaScript packages
JavaScript
21
star
29

elegant-sublime

👔An collection of sublime text preferences
17
star
30

pint-strict-preset

Pint strict preset is an insanely defensive coding style preset for those who demand meticulous precision in their projects.
11
star
31

alpine-day-schedule

👨🏻‍🚀 A command-line tool that gives you the Alpine Day 2021 schedule in your timezone. 🚀
PHP
11
star
32

talks

🎤 My talks about PHP, Laravel or side projects of mine
10
star
33

laravel-meetups

🍕It's Meetup time! Find out Laravel Meetups near you!
PHP
8
star
34

laravel-console-spinner

❃ A spinning activity indicator for Laravel/Laravel Zero artisan commands.
7
star
35

laravel-optimize-database

💨 Publishes migrations that make your sqlite database production ready. it's a work-in-progress
PHP
6
star
36

laravel-9-test

PHP
5
star
37

forge-octane

PHP
5
star
38

friend.com

Blade
3
star
39

scout-extended-demo

PHP
3
star
40

skeleton-typescript

⚗️ The perfect starting for typescript libraries.
3
star
41

laravel-zero-weather

PHP
3
star
42

nextjs-blog-wqdqwdqwd

JavaScript
2
star
43

dotfiles

2
star
44

twitter-stream

An demo application of Laravel Zero that works with the Twitter Streaming API
PHP
2
star
45

skeleton-laravel

Just my Laravel skeleton
2
star
46

learn-javascript

2
star
47

my-site

HTML
1
star
48

vapor-github-test

PHP
1
star
49

qwdpowkqdopwqkd

JavaScript
1
star
50

skeleton-php-1

My PHP Package Skeleton
PHP
1
star
51

exclude-dev-files-bug

PHP
1
star
52

kpop-stack

TypeScript
1
star
53

nunomaduro

1
star
54

helpers-tap

🚰 Tap that method
TypeScript
1
star
55

test

HTML
1
star
56

perna

🛋 Optimises the workflow around managing multi-package repositories.
1
star
57

demo-p

PHP
1
star
58

laravel-collections-examples

PHP
1
star
59

test-cs

PHP
1
star