Skip to content

Commit f05deb3

Browse files
committed
Wip
1 parent 934e549 commit f05deb3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+1015
-226
lines changed

.lintmdrc

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
{
22
"excludeFiles": [
3+
"art/",
4+
"config/",
5+
"resources/",
6+
"routes/",
37
"src/",
48
"tests/",
59
"vendor/"
@@ -9,7 +13,7 @@
913
"no-long-code": [
1014
2,
1115
{
12-
"length": 100,
16+
"length": 150,
1317
"exclude": [
1418
"dot"
1519
]

.php-cs-fixer.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,26 @@
33
declare(strict_types=1);
44

55
/**
6-
* This file is part of the guanguans/laravel-web-tinker.
6+
* This file is part of the guanguans/laravel-code-runner.
77
*
88
* (c) guanguans <ityaozm@gmail.com>
99
*
1010
* This source file is subject to the MIT license that is bundled.
1111
*/
1212

13+
use PhpCsFixer\Config;
14+
use PhpCsFixer\Finder;
15+
1316
$header = <<<EOF
14-
This file is part of the guanguans/laravel-web-tinker.
17+
This file is part of the guanguans/laravel-code-runner.
1518
1619
(c) guanguans <ityaozm@gmail.com>
1720
1821
This source file is subject to the MIT license that is bundled.
1922
EOF;
2023

21-
$finder = PhpCsFixer\Finder::create()
24+
/** @noinspection PhpParamsInspection */
25+
$finder = Finder::create()
2226
->in([
2327
__DIR__.'/config',
2428
__DIR__.'/routes',
@@ -46,7 +50,7 @@
4650
->ignoreDotFiles(true)
4751
->ignoreVCS(true);
4852

49-
return (new PhpCsFixer\Config())
53+
return (new Config())
5054
->setRules([
5155
'@DoctrineAnnotation' => true,
5256
'@PHP80Migration:risky' => true,

CHANGELOG.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
# Changelog
22

3-
All notable changes to `guanguans/laravel-web-tinker` will be documented in this file.
3+
All notable changes to `guanguans/laravel-code-runner` will be documented in this file.
44

5-
## 1.0.0 - 202X-XX-XX
6-
7-
- Initial release.

README-zh_CN.md

Lines changed: 57 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,75 @@
1-
# package-skeleton
1+
# laravel-code-runner
22

3-
[简体中文](README-zh_CN.md) | [ENGLISH](README.md)
3+
[ENGLISH](README.md) | [简体中文](README-zh_CN.md)
44

5-
> 一个 PHP 软件包模板存储库。- A PHP package template repository.
5+
> Run the code in the browser. - 在浏览器中运行代码。
66
7-
[![tests](https://github.com/guanguans/laravel-web-tinker/workflows/tests/badge.svg)](https://github.com/guanguans/laravel-web-tinker/actions)
8-
[![check & fix styling](https://github.com/guanguans/laravel-web-tinker/actions/workflows/php-cs-fixer.yml/badge.svg)](https://github.com/guanguans/laravel-web-tinker/actions)
9-
[![codecov](https://codecov.io/gh/guanguans/laravel-web-tinker/branch/main/graph/badge.svg?token=URGFAWS6S4)](https://codecov.io/gh/guanguans/laravel-web-tinker)
10-
[![Latest Stable Version](https://poser.pugx.org/guanguans/laravel-web-tinker/v)](//packagist.org/packages/guanguans/laravel-web-tinker)
11-
[![Total Downloads](https://poser.pugx.org/guanguans/laravel-web-tinker/downloads)](//packagist.org/packages/guanguans/laravel-web-tinker)
12-
[![License](https://poser.pugx.org/guanguans/laravel-web-tinker/license)](//packagist.org/packages/guanguans/laravel-web-tinker)
13-
![GitHub repo size](https://img.shields.io/github/repo-size/guanguans/laravel-web-tinker)
14-
![GitHub release (latest by date)](https://img.shields.io/github/v/release/guanguans/laravel-web-tinker)
15-
16-
## 功能
17-
18-
* 功能
7+
[![tests](https://github.com/guanguans/laravel-code-runner/workflows/tests/badge.svg)](https://github.com/guanguans/laravel-code-runner/actions)
8+
[![check & fix styling](https://github.com/guanguans/laravel-code-runner/actions/workflows/php-cs-fixer.yml/badge.svg)](https://github.com/guanguans/laravel-code-runner/actions)
9+
[![codecov](https://codecov.io/gh/guanguans/laravel-code-runner/branch/main/graph/badge.svg?token=URGFAWS6S4)](https://codecov.io/gh/guanguans/laravel-code-runner)
10+
[![Latest Stable Version](https://poser.pugx.org/guanguans/laravel-code-runner/v)](//packagist.org/packages/guanguans/laravel-code-runner)
11+
[![Total Downloads](https://poser.pugx.org/guanguans/laravel-code-runner/downloads)](//packagist.org/packages/guanguans/laravel-code-runner)
12+
[![License](https://poser.pugx.org/guanguans/laravel-code-runner/license)](//packagist.org/packages/guanguans/laravel-code-runner)
13+
![GitHub repo size](https://img.shields.io/github/repo-size/guanguans/laravel-code-runner)
14+
![GitHub release (latest by date)](https://img.shields.io/github/v/release/guanguans/laravel-code-runner)
1915

2016
## 环境要求
2117

2218
* PHP >= 7.4
19+
* Laravel >= 7.0
2320

2421
## 安装
2522

23+
通过 Composer 安装该软件包。
24+
25+
```bash
26+
$ composer require guanguans/laravel-code-runner --prefer-dist -vvv
27+
```
28+
29+
运行此命令来发布资源文件。
30+
31+
```bash
32+
$ php artisan code-runner:install
33+
```
34+
35+
发布配置文件(可选的)。
36+
2637
```bash
27-
$ composer require guanguans/laravel-web-tinker --prefer-dist -vvv
38+
$ php artisan vendor:publish --provider="Guanguans\LaravelCodeRunner\WebTinkerServiceProvider" --tag="code-runner-config"
2839
```
2940

3041
## 使用
3142

43+
默认情况下,此包仅在本地环境中运行。
44+
45+
访问 `/code-runner` 查看页面。
46+
47+
![](docs/usage.png)
48+
49+
### Authorization
50+
51+
如果您想在另一个环境中运行它(我们不建议这样做),您必须执行两个步骤。
52+
53+
1. 您必须将 `code-runner` 配置文件中的 `enabled` 值设置为 `true`
54+
55+
2. 您必须注册一个 `view-code-runner``ability`。最好在 Laravel 附带的 `AuthServiceProvider` 中。
56+
57+
```php
58+
use Illuminate\Contracts\Auth\Authenticatable;
59+
60+
public function boot()
61+
{
62+
$this->registerPolicies();
63+
64+
Gate::define('view-code-runner', function (?Authenticatable $user = null) {
65+
// 如果允许访问 web tinker,则返回 true。这是一个例子:
66+
return $user && in_array($user->email, [
67+
'admin@example.com',
68+
]);
69+
});
70+
}
71+
```
72+
3273
## 测试
3374

3475
```bash

README.md

Lines changed: 57 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,75 @@
1-
# laravel-web-tinker
1+
# laravel-code-runner
22

3-
[简体中文](README-zh_CN.md) | [ENGLISH](README.md)
3+
[ENGLISH](README.md) | [简体中文](README-zh_CN.md)
44

5-
> A PHP package template repository. - 一个 PHP 软件包模板存储库
5+
> Run the code in the browser. - 在浏览器中运行代码
66
7-
[![tests](https://github.com/guanguans/laravel-web-tinker/workflows/tests/badge.svg)](https://github.com/guanguans/laravel-web-tinker/actions)
8-
[![check & fix styling](https://github.com/guanguans/laravel-web-tinker/actions/workflows/php-cs-fixer.yml/badge.svg)](https://github.com/guanguans/laravel-web-tinker/actions)
9-
[![codecov](https://codecov.io/gh/guanguans/laravel-web-tinker/branch/main/graph/badge.svg?token=URGFAWS6S4)](https://codecov.io/gh/guanguans/laravel-web-tinker)
10-
[![Latest Stable Version](https://poser.pugx.org/guanguans/laravel-web-tinker/v)](//packagist.org/packages/guanguans/laravel-web-tinker)
11-
[![Total Downloads](https://poser.pugx.org/guanguans/laravel-web-tinker/downloads)](//packagist.org/packages/guanguans/laravel-web-tinker)
12-
[![License](https://poser.pugx.org/guanguans/laravel-web-tinker/license)](//packagist.org/packages/guanguans/laravel-web-tinker)
13-
![GitHub repo size](https://img.shields.io/github/repo-size/guanguans/laravel-web-tinker)
14-
![GitHub release (latest by date)](https://img.shields.io/github/v/release/guanguans/laravel-web-tinker)
15-
16-
## Features
17-
18-
* Feature
7+
[![tests](https://github.com/guanguans/laravel-code-runner/workflows/tests/badge.svg)](https://github.com/guanguans/laravel-code-runner/actions)
8+
[![check & fix styling](https://github.com/guanguans/laravel-code-runner/actions/workflows/php-cs-fixer.yml/badge.svg)](https://github.com/guanguans/laravel-code-runner/actions)
9+
[![codecov](https://codecov.io/gh/guanguans/laravel-code-runner/branch/main/graph/badge.svg?token=URGFAWS6S4)](https://codecov.io/gh/guanguans/laravel-code-runner)
10+
[![Latest Stable Version](https://poser.pugx.org/guanguans/laravel-code-runner/v)](//packagist.org/packages/guanguans/laravel-code-runner)
11+
[![Total Downloads](https://poser.pugx.org/guanguans/laravel-code-runner/downloads)](//packagist.org/packages/guanguans/laravel-code-runner)
12+
[![License](https://poser.pugx.org/guanguans/laravel-code-runner/license)](//packagist.org/packages/guanguans/laravel-code-runner)
13+
![GitHub repo size](https://img.shields.io/github/repo-size/guanguans/laravel-code-runner)
14+
![GitHub release (latest by date)](https://img.shields.io/github/v/release/guanguans/laravel-code-runner)
1915

2016
## Requirement
2117

2218
* PHP >= 7.4
19+
* Laravel >= 7.0
2320

2421
## Installation
2522

23+
You can install the package via composer.
24+
25+
```bash
26+
$ composer require guanguans/laravel-code-runner --prefer-dist -vvv
27+
```
28+
29+
Next, you must publish the assets from this package by running this command.
30+
31+
```bash
32+
$ php artisan code-runner:install
33+
```
34+
35+
Optionally, you can publish the config file of the package.
36+
2637
```bash
27-
$ composer require guanguans/laravel-web-tinker --prefer-dist -vvv
38+
$ php artisan vendor:publish --provider="Guanguans\LaravelCodeRunner\WebTinkerServiceProvider" --tag="code-runner-config"
2839
```
2940

3041
## Usage
3142

43+
![](docs/usage.png)
44+
45+
By default this package will only run in a local environment.
46+
47+
Visit `/code-runner` in your app to view page.
48+
49+
### Authorization
50+
51+
Should you want to run this in another environment (we do not recommend this), there are two steps you must perform.
52+
53+
1. You must set the `enabled` variable in the `code-runner` config file to `true`.
54+
55+
2. You must register a `view-code-runner` ability. A good place to do this is in the `AuthServiceProvider` that ships with Laravel.
56+
57+
```php
58+
use Illuminate\Contracts\Auth\Authenticatable;
59+
60+
public function boot()
61+
{
62+
$this->registerPolicies();
63+
64+
Gate::define('view-code-runner', function (?Authenticatable $user = null) {
65+
// Return true if access to web tinker is allowed. Here's an example:
66+
return $user && in_array($user->email, [
67+
'admin@example.com',
68+
]);
69+
});
70+
}
71+
```
72+
3273
## Testing
3374

3475
```bash

_ide_helper.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22

33
/**
4-
* This file is part of the guanguans/laravel-web-tinker.
4+
* This file is part of the guanguans/laravel-code-runner.
55
*
66
* (c) guanguans <ityaozm@gmail.com>
77
*
@@ -10,4 +10,7 @@
1010

1111
namespace {
1212

13+
class CodeRunner extends \Guanguans\LaravelCodeRunner\Facades\CodeRunner
14+
{
15+
}
1316
}

composer.json

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
{
2-
"name": "guanguans/laravel-web-tinker",
3-
"description": "Artisan Tinker in your browser",
2+
"name": "guanguans/laravel-code-runner",
3+
"description": "Run the code in the browser. - 在浏览器中运行代码。",
44
"license": "MIT",
55
"type": "library",
66
"abandoned": false,
77
"non-feature-branches": [],
88
"keywords": [
9-
"web-tinker",
109
"laravel",
10+
"code-runner",
11+
"code",
12+
"runner",
13+
"web",
1114
"tinker",
15+
"artisan",
16+
"browser",
1217
"debug",
1318
"development"
1419
],
@@ -21,10 +26,10 @@
2126
"role": "developer"
2227
}
2328
],
24-
"homepage": "https://github.com/guanguans/laravel-web-tinker",
29+
"homepage": "https://github.com/guanguans/laravel-code-runner",
2530
"support": {
26-
"issues": "https://github.com/guanguans/laravel-web-tinker/issues",
27-
"source": "https://github.com/guanguans/laravel-web-tinker"
31+
"issues": "https://github.com/guanguans/laravel-code-runner/issues",
32+
"source": "https://github.com/guanguans/laravel-code-runner"
2833
},
2934
"funding": [
3035
{
@@ -75,7 +80,7 @@
7580
"autoload": {
7681
"psr-0": {},
7782
"psr-4": {
78-
"Guanguans\\LaravelWebTinker\\": "src"
83+
"Guanguans\\LaravelCodeRunner\\": "src"
7984
},
8085
"classmap": [],
8186
"files": [],
@@ -85,14 +90,15 @@
8590
},
8691
"autoload-dev": {
8792
"psr-4": {
88-
"Guanguans\\LaravelWebTinkerTests\\": "tests"
93+
"Guanguans\\LaravelCodeRunnerTests\\": "tests"
8994
}
9095
},
9196
"bin": [],
9297
"archive": {},
9398
"config": {
9499
"allow-plugins": {
95100
"infection/extension-installer": true,
101+
"kylekatarnls/update-helper": false,
96102
"pestphp/pest-plugin": true,
97103
"phpstan/extension-installer": true
98104
},
@@ -114,15 +120,18 @@
114120
"composer checks"
115121
]
116122
},
123+
"laravel": {
124+
"aliases": {
125+
"CodeRunner": "Guanguans\\LaravelCodeRunner\\Facades\\CodeRunner"
126+
},
127+
"providers": [
128+
"Guanguans\\LaravelCodeRunner\\CodeRunnerServiceProvider"
129+
]
130+
},
117131
"phpstan": {
118132
"includes": [
119133
"extension.neon"
120134
]
121-
},
122-
"laravel": {
123-
"providers": [
124-
"Guanguans\\LaravelWebTinker\\WebTinkerServiceProvider"
125-
]
126135
}
127136
},
128137
"scripts": {
@@ -133,14 +142,15 @@
133142
"post-update-cmd": [
134143
"@cghooks update"
135144
],
136-
"post-autoload-dump": [
137-
],
145+
"post-autoload-dump": [],
138146
"cghooks": "./vendor/bin/cghooks",
139147
"checks": [
140148
"@mark-start",
141149
"@style-lint",
142150
"@mark-separate",
143151
"@test",
152+
"@mark-separate",
153+
"@psalm",
144154
"@mark-finish"
145155
],
146156
"infection": "./vendor/bin/infection --test-framework=pest --show-mutations --threads=4 --ansi",
@@ -161,7 +171,7 @@
161171
"rector": "./vendor/bin/rector --clear-cache --ansi -v",
162172
"rector-dry-run": "@rector --dry-run",
163173
"style-fix": "./vendor/bin/php-cs-fixer fix --using-cache=no --config=.php-cs-fixer.php --ansi",
164-
"style-lint": "@style-fix --diff --dry-run",
174+
"style-lint": "@style-fix --dry-run --diff",
165175
"test": "@pest",
166176
"test-coverage": "@pest-coverage"
167177
},

0 commit comments

Comments
 (0)