Revisão 3e379cec
.editorconfig | ||
---|---|---|
1 |
root = true |
|
2 |
|
|
3 |
[*] |
|
4 |
charset = utf-8 |
|
5 |
end_of_line = lf |
|
6 |
insert_final_newline = true |
|
7 |
indent_style = space |
|
8 |
indent_size = 4 |
|
9 |
trim_trailing_whitespace = true |
|
10 |
|
|
11 |
[*.md] |
|
12 |
trim_trailing_whitespace = false |
|
13 |
|
|
14 |
[*.{yml,yaml}] |
|
15 |
indent_size = 2 |
.gitignore | ||
---|---|---|
1 |
/vendor |
|
2 |
/.idea |
|
3 |
Homestead.json |
|
4 |
Homestead.yaml |
|
5 |
.env |
|
6 |
.phpunit.result.cache |
.styleci.yml | ||
---|---|---|
1 |
php: |
|
2 |
preset: laravel |
|
3 |
disabled: |
|
4 |
- unused_use |
|
5 |
js: true |
|
6 |
css: true |
app/Console/Commands/Expresso/SieveGetUid.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
namespace App\Console\Commands\Expresso; |
|
4 |
|
|
5 |
use Illuminate\Console\Command; |
|
6 |
use Illuminate\Support\Facades\DB; |
|
7 |
use Storage; |
|
8 |
|
|
9 |
class SieveGetUid extends Command |
|
10 |
{ |
|
11 |
/** |
|
12 |
* The name and signature of the console command. |
|
13 |
* |
|
14 |
* @var string |
|
15 |
*/ |
|
16 |
protected $signature = 'expresso:sieve-get {--u|uid=} {cmd?}'; |
|
17 |
|
|
18 |
/** |
|
19 |
* The console command description. |
|
20 |
* |
|
21 |
* @var string |
|
22 |
*/ |
|
23 |
protected $description = 'Lista os scripts sieve do usuario'; |
|
24 |
|
|
25 |
/** |
|
26 |
* Create a new command instance. |
|
27 |
* |
|
28 |
* @return void |
|
29 |
*/ |
|
30 |
public function __construct() |
|
31 |
{ |
|
32 |
parent::__construct(); |
|
33 |
} |
|
34 |
|
|
35 |
/** |
|
36 |
* Execute the console command. |
|
37 |
* |
|
38 |
* @return mixed |
|
39 |
*/ |
|
40 |
public function handle() |
|
41 |
{ |
|
42 |
$arguments = $this->arguments(); |
|
43 |
|
|
44 |
$uid = $this->option('uid') ?? null; |
|
45 |
|
|
46 |
if( isset($arguments['cmd']) && $arguments['cmd'] == 'help' ) |
|
47 |
{ |
|
48 |
$this->help(); |
|
49 |
|
|
50 |
} else { |
|
51 |
|
|
52 |
if( !is_null($uid) ){ |
|
53 |
|
|
54 |
$sieveRules = $this->getSieveRules($uid); |
|
55 |
|
|
56 |
if( isset($arguments['cmd']) && $arguments['cmd'] == 'print' ) |
|
57 |
{ |
|
58 |
$rules = []; |
|
59 |
foreach( $sieveRules as $key => $sieve ){ |
|
60 |
$rules[$key]['regra'] = unserialize( $sieve->rule ); |
|
61 |
$rules[$key]['habilitada'] = $sieve->is_enabled; |
|
62 |
$rules[$key]['dt_criacao'] = date('d/m/Y', strtotime($sieve->created_dt)); |
|
63 |
|
|
64 |
print_r( $rules[$key] ); |
|
65 |
} |
|
66 |
} |
|
67 |
|
|
68 |
if( isset($arguments['cmd']) && $arguments['cmd'] == 'file' ) |
|
69 |
{ |
|
70 |
$lines = "Usuario : " . $uid . PHP_EOL; |
|
71 |
|
|
72 |
foreach( $sieveRules as $key => $sieve ){ |
|
73 |
$lines .= "regra : " . $sieve->rule . PHP_EOL; |
|
74 |
$lines .= "habilitada : " . $sieve->is_enabled . PHP_EOL; |
|
75 |
$lines .= "dt_criacao : " . date('d/m/Y', strtotime($sieve->created_dt)) . PHP_EOL; |
|
76 |
$lines .= "************************************************************************" . PHP_EOL . PHP_EOL; |
|
77 |
} |
|
78 |
|
|
79 |
Storage::put('file/file_'.$uid.'.txt', $lines ); |
|
80 |
} |
|
81 |
|
|
82 |
if( isset($arguments['cmd']) && $arguments['cmd'] == 'fileSogo' ) |
|
83 |
{ |
|
84 |
print_r( storage_path('fileSogo') ); |
|
85 |
} |
|
86 |
} |
|
87 |
} |
|
88 |
|
|
89 |
$this->newLine(); |
|
90 |
} |
|
91 |
|
|
92 |
private function getSieveRules( $user ) |
|
93 |
{ |
|
94 |
$sieveRules = DB::connection('pgsql-expresso') |
|
95 |
->table('phpgw_sieve_rules') |
|
96 |
->where('fk_sieve_owner', $user ) |
|
97 |
->get(); |
|
98 |
|
|
99 |
return $sieveRules; |
|
100 |
} |
|
101 |
|
|
102 |
private function help() |
|
103 |
{ |
|
104 |
$this->newLine(); |
|
105 |
$this->info('EXEMPLO DE UTILIZACAO : '); |
|
106 |
$this->info('Ex: php artisan expresso:sieve-get --uid=<000000> { print | file | fileSogo }'); |
|
107 |
$this->newLine(); |
|
108 |
} |
|
109 |
} |
app/Console/Commands/Sogo/Preferences.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
namespace App\Console\Commands\Sogo; |
|
4 |
|
|
5 |
use Illuminate\Console\Command; |
|
6 |
use Illuminate\Support\Facades\DB; |
|
7 |
use Storage; |
|
8 |
|
|
9 |
class Preferences extends Command |
|
10 |
{ |
|
11 |
/** |
|
12 |
* The name and signature of the console command. |
|
13 |
* |
|
14 |
* @var string |
|
15 |
*/ |
|
16 |
protected $signature = 'sogo:preferences-get {--u|user=} {cmd?}'; |
|
17 |
|
|
18 |
/** |
|
19 |
* The console command description. |
|
20 |
* |
|
21 |
* @var string |
|
22 |
*/ |
|
23 |
protected $description = 'Lista as preferencias sogo do usuario'; |
|
24 |
|
|
25 |
/** |
|
26 |
* Create a new command instance. |
|
27 |
* |
|
28 |
* @return void |
|
29 |
*/ |
|
30 |
public function __construct() |
|
31 |
{ |
|
32 |
parent::__construct(); |
|
33 |
} |
|
34 |
|
|
35 |
/** |
|
36 |
* Execute the console command. |
|
37 |
* |
|
38 |
* @return mixed |
|
39 |
*/ |
|
40 |
public function handle() |
|
41 |
{ |
|
42 |
$arguments = $this->arguments(); |
|
43 |
|
|
44 |
$user = $this->option('user') ?? null; |
|
45 |
|
|
46 |
if( isset($arguments['cmd']) && $arguments['cmd'] == 'help' ) |
|
47 |
{ |
|
48 |
$this->help(); |
|
49 |
|
|
50 |
} else { |
|
51 |
|
|
52 |
if( !is_null($user) ){ |
|
53 |
|
|
54 |
$preferences = $this->getPreferences($user); |
|
55 |
|
|
56 |
print_r( json_decode($preferences->c_defaults) ); |
|
57 |
} |
|
58 |
} |
|
59 |
|
|
60 |
$this->newLine(); |
|
61 |
} |
|
62 |
|
|
63 |
private function getPreferences( $user ) |
|
64 |
{ |
|
65 |
$preferences = DB::connection('pgsql-sogo') |
|
66 |
->table('sogo_user_profile') |
|
67 |
->where('c_uid', $user ) |
|
68 |
->first(); |
|
69 |
|
|
70 |
return $preferences; |
|
71 |
} |
|
72 |
|
|
73 |
private function help() |
|
74 |
{ |
|
75 |
$this->newLine(); |
|
76 |
$this->info('EXEMPLO DE UTILIZACAO : '); |
|
77 |
$this->info('Ex: php artisan sogo:preferences-get --user=<usuario> { print | file }'); |
|
78 |
$this->newLine(); |
|
79 |
} |
|
80 |
} |
app/Console/Kernel.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
namespace App\Console; |
|
4 |
|
|
5 |
use Illuminate\Console\Scheduling\Schedule; |
|
6 |
use Laravel\Lumen\Console\Kernel as ConsoleKernel; |
|
7 |
|
|
8 |
class Kernel extends ConsoleKernel |
|
9 |
{ |
|
10 |
/** |
|
11 |
* The Artisan commands provided by your application. |
|
12 |
* |
|
13 |
* @var array |
|
14 |
*/ |
|
15 |
protected $commands = [ |
|
16 |
\App\Console\Commands\Expresso\SieveGetUid::class, |
|
17 |
\App\Console\Commands\Sogo\Preferences::class |
|
18 |
]; |
|
19 |
|
|
20 |
/** |
|
21 |
* Define the application's command schedule. |
|
22 |
* |
|
23 |
* @param \Illuminate\Console\Scheduling\Schedule $schedule |
|
24 |
* @return void |
|
25 |
*/ |
|
26 |
protected function schedule(Schedule $schedule) |
|
27 |
{ |
|
28 |
// |
|
29 |
} |
|
30 |
} |
app/Events/Event.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
namespace App\Events; |
|
4 |
|
|
5 |
use Illuminate\Queue\SerializesModels; |
|
6 |
|
|
7 |
abstract class Event |
|
8 |
{ |
|
9 |
use SerializesModels; |
|
10 |
} |
app/Events/ExampleEvent.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
namespace App\Events; |
|
4 |
|
|
5 |
class ExampleEvent extends Event |
|
6 |
{ |
|
7 |
/** |
|
8 |
* Create a new event instance. |
|
9 |
* |
|
10 |
* @return void |
|
11 |
*/ |
|
12 |
public function __construct() |
|
13 |
{ |
|
14 |
// |
|
15 |
} |
|
16 |
} |
app/Exceptions/Handler.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
namespace App\Exceptions; |
|
4 |
|
|
5 |
use Illuminate\Auth\Access\AuthorizationException; |
|
6 |
use Illuminate\Database\Eloquent\ModelNotFoundException; |
|
7 |
use Illuminate\Validation\ValidationException; |
|
8 |
use Laravel\Lumen\Exceptions\Handler as ExceptionHandler; |
|
9 |
use Symfony\Component\HttpKernel\Exception\HttpException; |
|
10 |
use Throwable; |
|
11 |
|
|
12 |
class Handler extends ExceptionHandler |
|
13 |
{ |
|
14 |
/** |
|
15 |
* A list of the exception types that should not be reported. |
|
16 |
* |
|
17 |
* @var array |
|
18 |
*/ |
|
19 |
protected $dontReport = [ |
|
20 |
AuthorizationException::class, |
|
21 |
HttpException::class, |
|
22 |
ModelNotFoundException::class, |
|
23 |
ValidationException::class, |
|
24 |
]; |
|
25 |
|
|
26 |
/** |
|
27 |
* Report or log an exception. |
|
28 |
* |
|
29 |
* This is a great spot to send exceptions to Sentry, Bugsnag, etc. |
|
30 |
* |
|
31 |
* @param \Throwable $exception |
|
32 |
* @return void |
|
33 |
* |
|
34 |
* @throws \Exception |
|
35 |
*/ |
|
36 |
public function report(Throwable $exception) |
|
37 |
{ |
|
38 |
parent::report($exception); |
|
39 |
} |
|
40 |
|
|
41 |
/** |
|
42 |
* Render an exception into an HTTP response. |
|
43 |
* |
|
44 |
* @param \Illuminate\Http\Request $request |
|
45 |
* @param \Throwable $exception |
|
46 |
* @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse |
|
47 |
* |
|
48 |
* @throws \Throwable |
|
49 |
*/ |
|
50 |
public function render($request, Throwable $exception) |
|
51 |
{ |
|
52 |
return parent::render($request, $exception); |
|
53 |
} |
|
54 |
} |
app/Http/Controllers/Controller.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
namespace App\Http\Controllers; |
|
4 |
|
|
5 |
use Laravel\Lumen\Routing\Controller as BaseController; |
|
6 |
|
|
7 |
class Controller extends BaseController |
|
8 |
{ |
|
9 |
// |
|
10 |
} |
app/Http/Controllers/ExampleController.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
namespace App\Http\Controllers; |
|
4 |
|
|
5 |
class ExampleController extends Controller |
|
6 |
{ |
|
7 |
/** |
|
8 |
* Create a new controller instance. |
|
9 |
* |
|
10 |
* @return void |
|
11 |
*/ |
|
12 |
public function __construct() |
|
13 |
{ |
|
14 |
// |
|
15 |
} |
|
16 |
|
|
17 |
// |
|
18 |
} |
app/Http/Middleware/Authenticate.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
namespace App\Http\Middleware; |
|
4 |
|
|
5 |
use Closure; |
|
6 |
use Illuminate\Contracts\Auth\Factory as Auth; |
|
7 |
|
|
8 |
class Authenticate |
|
9 |
{ |
|
10 |
/** |
|
11 |
* The authentication guard factory instance. |
|
12 |
* |
|
13 |
* @var \Illuminate\Contracts\Auth\Factory |
|
14 |
*/ |
|
15 |
protected $auth; |
|
16 |
|
|
17 |
/** |
|
18 |
* Create a new middleware instance. |
|
19 |
* |
|
20 |
* @param \Illuminate\Contracts\Auth\Factory $auth |
|
21 |
* @return void |
|
22 |
*/ |
|
23 |
public function __construct(Auth $auth) |
|
24 |
{ |
|
25 |
$this->auth = $auth; |
|
26 |
} |
|
27 |
|
|
28 |
/** |
|
29 |
* Handle an incoming request. |
|
30 |
* |
|
31 |
* @param \Illuminate\Http\Request $request |
|
32 |
* @param \Closure $next |
|
33 |
* @param string|null $guard |
|
34 |
* @return mixed |
|
35 |
*/ |
|
36 |
public function handle($request, Closure $next, $guard = null) |
|
37 |
{ |
|
38 |
if ($this->auth->guard($guard)->guest()) { |
|
39 |
return response('Unauthorized.', 401); |
|
40 |
} |
|
41 |
|
|
42 |
return $next($request); |
|
43 |
} |
|
44 |
} |
app/Http/Middleware/ExampleMiddleware.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
namespace App\Http\Middleware; |
|
4 |
|
|
5 |
use Closure; |
|
6 |
|
|
7 |
class ExampleMiddleware |
|
8 |
{ |
|
9 |
/** |
|
10 |
* Handle an incoming request. |
|
11 |
* |
|
12 |
* @param \Illuminate\Http\Request $request |
|
13 |
* @param \Closure $next |
|
14 |
* @return mixed |
|
15 |
*/ |
|
16 |
public function handle($request, Closure $next) |
|
17 |
{ |
|
18 |
return $next($request); |
|
19 |
} |
|
20 |
} |
app/Jobs/ExampleJob.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
namespace App\Jobs; |
|
4 |
|
|
5 |
class ExampleJob extends Job |
|
6 |
{ |
|
7 |
/** |
|
8 |
* Create a new job instance. |
|
9 |
* |
|
10 |
* @return void |
|
11 |
*/ |
|
12 |
public function __construct() |
|
13 |
{ |
|
14 |
// |
|
15 |
} |
|
16 |
|
|
17 |
/** |
|
18 |
* Execute the job. |
|
19 |
* |
|
20 |
* @return void |
|
21 |
*/ |
|
22 |
public function handle() |
|
23 |
{ |
|
24 |
// |
|
25 |
} |
|
26 |
} |
app/Jobs/Job.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
namespace App\Jobs; |
|
4 |
|
|
5 |
use Illuminate\Bus\Queueable; |
|
6 |
use Illuminate\Contracts\Queue\ShouldQueue; |
|
7 |
use Illuminate\Queue\InteractsWithQueue; |
|
8 |
use Illuminate\Queue\SerializesModels; |
|
9 |
|
|
10 |
abstract class Job implements ShouldQueue |
|
11 |
{ |
|
12 |
/* |
|
13 |
|-------------------------------------------------------------------------- |
|
14 |
| Queueable Jobs |
|
15 |
|-------------------------------------------------------------------------- |
|
16 |
| |
|
17 |
| This job base class provides a central location to place any logic that |
|
18 |
| is shared across all of your jobs. The trait included with the class |
|
19 |
| provides access to the "queueOn" and "delay" queue helper methods. |
|
20 |
| |
|
21 |
*/ |
|
22 |
|
|
23 |
use InteractsWithQueue, Queueable, SerializesModels; |
|
24 |
} |
app/Listeners/ExampleListener.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
namespace App\Listeners; |
|
4 |
|
|
5 |
use App\Events\ExampleEvent; |
|
6 |
use Illuminate\Contracts\Queue\ShouldQueue; |
|
7 |
use Illuminate\Queue\InteractsWithQueue; |
|
8 |
|
|
9 |
class ExampleListener |
|
10 |
{ |
|
11 |
/** |
|
12 |
* Create the event listener. |
|
13 |
* |
|
14 |
* @return void |
|
15 |
*/ |
|
16 |
public function __construct() |
|
17 |
{ |
|
18 |
// |
|
19 |
} |
|
20 |
|
|
21 |
/** |
|
22 |
* Handle the event. |
|
23 |
* |
|
24 |
* @param \App\Events\ExampleEvent $event |
|
25 |
* @return void |
|
26 |
*/ |
|
27 |
public function handle(ExampleEvent $event) |
|
28 |
{ |
|
29 |
// |
|
30 |
} |
|
31 |
} |
app/Models/User.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
namespace App\Models; |
|
4 |
|
|
5 |
use Illuminate\Auth\Authenticatable; |
|
6 |
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract; |
|
7 |
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract; |
|
8 |
use Illuminate\Database\Eloquent\Factories\HasFactory; |
|
9 |
use Illuminate\Database\Eloquent\Model; |
|
10 |
use Laravel\Lumen\Auth\Authorizable; |
|
11 |
|
|
12 |
class User extends Model implements AuthenticatableContract, AuthorizableContract |
|
13 |
{ |
|
14 |
use Authenticatable, Authorizable, HasFactory; |
|
15 |
|
|
16 |
/** |
|
17 |
* The attributes that are mass assignable. |
|
18 |
* |
|
19 |
* @var array |
|
20 |
*/ |
|
21 |
protected $fillable = [ |
|
22 |
'name', 'email', |
|
23 |
]; |
|
24 |
|
|
25 |
/** |
|
26 |
* The attributes excluded from the model's JSON form. |
|
27 |
* |
|
28 |
* @var array |
|
29 |
*/ |
|
30 |
protected $hidden = [ |
|
31 |
'password', |
|
32 |
]; |
|
33 |
} |
app/Providers/AppServiceProvider.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
namespace App\Providers; |
|
4 |
|
|
5 |
use Illuminate\Support\ServiceProvider; |
|
6 |
|
|
7 |
class AppServiceProvider extends ServiceProvider |
|
8 |
{ |
|
9 |
/** |
|
10 |
* Register any application services. |
|
11 |
* |
|
12 |
* @return void |
|
13 |
*/ |
|
14 |
public function register() |
|
15 |
{ |
|
16 |
// |
|
17 |
} |
|
18 |
} |
app/Providers/AuthServiceProvider.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
namespace App\Providers; |
|
4 |
|
|
5 |
use App\Models\User; |
|
6 |
use Illuminate\Support\Facades\Gate; |
|
7 |
use Illuminate\Support\ServiceProvider; |
|
8 |
|
|
9 |
class AuthServiceProvider extends ServiceProvider |
|
10 |
{ |
|
11 |
/** |
|
12 |
* Register any application services. |
|
13 |
* |
|
14 |
* @return void |
|
15 |
*/ |
|
16 |
public function register() |
|
17 |
{ |
|
18 |
// |
|
19 |
} |
|
20 |
|
|
21 |
/** |
|
22 |
* Boot the authentication services for the application. |
|
23 |
* |
|
24 |
* @return void |
|
25 |
*/ |
|
26 |
public function boot() |
|
27 |
{ |
|
28 |
// Here you may define how you wish users to be authenticated for your Lumen |
|
29 |
// application. The callback which receives the incoming request instance |
|
30 |
// should return either a User instance or null. You're free to obtain |
|
31 |
// the User instance via an API token or any other method necessary. |
|
32 |
|
|
33 |
$this->app['auth']->viaRequest('api', function ($request) { |
|
34 |
if ($request->input('api_token')) { |
|
35 |
return User::where('api_token', $request->input('api_token'))->first(); |
|
36 |
} |
|
37 |
}); |
|
38 |
} |
|
39 |
} |
app/Providers/EventServiceProvider.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
namespace App\Providers; |
|
4 |
|
|
5 |
use Laravel\Lumen\Providers\EventServiceProvider as ServiceProvider; |
|
6 |
|
|
7 |
class EventServiceProvider extends ServiceProvider |
|
8 |
{ |
|
9 |
/** |
|
10 |
* The event listener mappings for the application. |
|
11 |
* |
|
12 |
* @var array |
|
13 |
*/ |
|
14 |
protected $listen = [ |
|
15 |
\App\Events\ExampleEvent::class => [ |
|
16 |
\App\Listeners\ExampleListener::class, |
|
17 |
], |
|
18 |
]; |
|
19 |
} |
app/ldap/config.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
use Illuminate\Support\Facades\DB; |
|
4 |
|
|
5 |
// $ldapConfig = DB::connection('pgsql-expresso') |
|
6 |
// ->table('phpgw_config') |
|
7 |
// ->where('config_app', 'phpgwapi') |
|
8 |
// ->whereIn('config_name', ['ldap_context','ldap_host','ldap_root_dn','ldap_root_pw']) |
|
9 |
// ->get(); |
|
10 |
|
|
11 |
// return [ |
|
12 |
// 'hosts' => '', |
|
13 |
// 'base_dn' => 'dc=local,dc=com', |
|
14 |
// 'username' => 'cn=admin,dc=local,dc=com', |
|
15 |
// 'password' => 'password', |
|
16 |
// 'port' => 389, |
|
17 |
// // 'use_ssl' => false, |
|
18 |
// // 'use_tls' => false, |
|
19 |
// // 'version' => 3, |
|
20 |
// // 'timeout' => 5, |
|
21 |
// // 'follow_referrals' => false, |
|
22 |
|
|
23 |
// // // Custom LDAP Options |
|
24 |
// // 'options' => [ |
|
25 |
// // // See: http://php.net/ldap_set_option |
|
26 |
// // LDAP_OPT_X_TLS_REQUIRE_CERT => LDAP_OPT_X_TLS_HARD |
|
27 |
// // ] |
|
28 |
// ]; |
artisan | ||
---|---|---|
1 |
#!/usr/bin/env php |
|
2 |
<?php |
|
3 |
|
|
4 |
use Symfony\Component\Console\Input\ArgvInput; |
|
5 |
use Symfony\Component\Console\Output\ConsoleOutput; |
|
6 |
|
|
7 |
/* |
|
8 |
|-------------------------------------------------------------------------- |
|
9 |
| Create The Application |
|
10 |
|-------------------------------------------------------------------------- |
|
11 |
| |
|
12 |
| First we need to get an application instance. This creates an instance |
|
13 |
| of the application / container and bootstraps the application so it |
|
14 |
| is ready to receive HTTP / Console requests from the environment. |
|
15 |
| |
|
16 |
*/ |
|
17 |
|
|
18 |
$app = require __DIR__.'/bootstrap/app.php'; |
|
19 |
|
|
20 |
/* |
|
21 |
|-------------------------------------------------------------------------- |
|
22 |
| Run The Artisan Application |
|
23 |
|-------------------------------------------------------------------------- |
|
24 |
| |
|
25 |
| When we run the console application, the current CLI command will be |
|
26 |
| executed in this console and the response sent back to a terminal |
|
27 |
| or another output device for the developers. Here goes nothing! |
|
28 |
| |
|
29 |
*/ |
|
30 |
|
|
31 |
$kernel = $app->make( |
|
32 |
'Illuminate\Contracts\Console\Kernel' |
|
33 |
); |
|
34 |
|
|
35 |
exit($kernel->handle(new ArgvInput, new ConsoleOutput)); |
bootstrap/app.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
require_once __DIR__.'/../vendor/autoload.php'; |
|
4 |
|
|
5 |
(new Laravel\Lumen\Bootstrap\LoadEnvironmentVariables( |
|
6 |
dirname(__DIR__) |
|
7 |
))->bootstrap(); |
|
8 |
|
|
9 |
date_default_timezone_set(env('APP_TIMEZONE', 'UTC')); |
|
10 |
|
|
11 |
/* |
|
12 |
|-------------------------------------------------------------------------- |
|
13 |
| Create The Application |
|
14 |
|-------------------------------------------------------------------------- |
|
15 |
| |
|
16 |
| Here we will load the environment and create the application instance |
|
17 |
| that serves as the central piece of this framework. We'll use this |
|
18 |
| application as an "IoC" container and router for this framework. |
|
19 |
| |
|
20 |
*/ |
|
21 |
|
|
22 |
$app = new Laravel\Lumen\Application( |
|
23 |
dirname(__DIR__) |
|
24 |
); |
|
25 |
|
|
26 |
$app->withFacades(); |
|
27 |
|
|
28 |
$app->withEloquent(); |
|
29 |
|
|
30 |
/* |
|
31 |
|-------------------------------------------------------------------------- |
|
32 |
| Register Container Bindings |
|
33 |
|-------------------------------------------------------------------------- |
|
34 |
| |
|
35 |
| Now we will register a few bindings in the service container. We will |
|
36 |
| register the exception handler and the console kernel. You may add |
|
37 |
| your own bindings here if you like or you can make another file. |
|
38 |
| |
|
39 |
*/ |
|
40 |
|
|
41 |
$app->singleton( |
|
42 |
Illuminate\Contracts\Debug\ExceptionHandler::class, |
|
43 |
App\Exceptions\Handler::class |
|
44 |
); |
|
45 |
|
|
46 |
$app->singleton( |
|
47 |
Illuminate\Contracts\Console\Kernel::class, |
|
48 |
App\Console\Kernel::class |
|
49 |
); |
|
50 |
|
|
51 |
/* |
|
52 |
|-------------------------------------------------------------------------- |
|
53 |
| Register Config Files |
|
54 |
|-------------------------------------------------------------------------- |
|
55 |
| |
|
56 |
| Now we will register the "app" configuration file. If the file exists in |
|
57 |
| your configuration directory it will be loaded; otherwise, we'll load |
|
58 |
| the default version. You may register other files below as needed. |
|
59 |
| |
|
60 |
*/ |
|
61 |
|
|
62 |
$app->configure('app'); |
|
63 |
|
|
64 |
/* |
|
65 |
|-------------------------------------------------------------------------- |
|
66 |
| Register Middleware |
|
67 |
|-------------------------------------------------------------------------- |
|
68 |
| |
|
69 |
| Next, we will register the middleware with the application. These can |
|
70 |
| be global middleware that run before and after each request into a |
|
71 |
| route or middleware that'll be assigned to some specific routes. |
|
72 |
| |
|
73 |
*/ |
|
74 |
|
|
75 |
// $app->middleware([ |
|
76 |
// App\Http\Middleware\ExampleMiddleware::class |
|
77 |
// ]); |
|
78 |
|
|
79 |
// $app->routeMiddleware([ |
|
80 |
// 'auth' => App\Http\Middleware\Authenticate::class, |
|
81 |
// ]); |
|
82 |
|
|
83 |
/* |
|
84 |
|-------------------------------------------------------------------------- |
|
85 |
| Register Service Providers |
|
86 |
|-------------------------------------------------------------------------- |
|
87 |
| |
|
88 |
| Here we will register all of the application's service providers which |
|
89 |
| are used to bind services into the container. Service providers are |
|
90 |
| totally optional, so you are not required to uncomment this line. |
|
91 |
| |
|
92 |
*/ |
|
93 |
|
|
94 |
// $app->register(App\Providers\AppServiceProvider::class); |
|
95 |
// $app->register(App\Providers\AuthServiceProvider::class); |
|
96 |
// $app->register(App\Providers\EventServiceProvider::class); |
|
97 |
|
|
98 |
/* |
|
99 |
|-------------------------------------------------------------------------- |
|
100 |
| Load The Application Routes |
|
101 |
|-------------------------------------------------------------------------- |
|
102 |
| |
|
103 |
| Next we will include the routes file so that they can all be added to |
|
104 |
| the application. This will provide all of the URLs the application |
|
105 |
| can respond to, as well as the controllers that may handle them. |
|
106 |
| |
|
107 |
*/ |
|
108 |
|
|
109 |
$app->router->group([ |
|
110 |
'namespace' => 'App\Http\Controllers', |
|
111 |
], function ($router) { |
|
112 |
require __DIR__.'/../routes/web.php'; |
|
113 |
}); |
|
114 |
|
|
115 |
return $app; |
composer.json | ||
---|---|---|
1 |
{ |
|
2 |
"name": "expressolivre/tools", |
|
3 |
"description": "Expresso tools", |
|
4 |
"keywords": ["framework", "laravel", "lumen"], |
|
5 |
"license": "MIT", |
|
6 |
"type": "project", |
|
7 |
"require": { |
|
8 |
"php": "^7.3|^8.0", |
|
9 |
"directorytree/ldaprecord": "^2.6", |
|
10 |
"laravel/lumen-framework": "^8.0" |
|
11 |
}, |
|
12 |
"require-dev": { |
|
13 |
"fakerphp/faker": "^1.9.1", |
|
14 |
"league/flysystem": "^1.1", |
|
15 |
"mockery/mockery": "^1.3.1", |
|
16 |
"phpunit/phpunit": "^9.3" |
|
17 |
}, |
|
18 |
"autoload": { |
|
19 |
"psr-4": { |
|
20 |
"App\\": "app/", |
|
21 |
"Database\\Factories\\": "database/factories/", |
|
22 |
"Database\\Seeders\\": "database/seeders/" |
|
23 |
} |
|
24 |
}, |
|
25 |
"autoload-dev": { |
|
26 |
"classmap": [ |
|
27 |
"tests/" |
|
28 |
] |
|
29 |
}, |
|
30 |
"config": { |
|
31 |
"preferred-install": "dist", |
|
32 |
"sort-packages": true, |
|
33 |
"optimize-autoloader": true |
|
34 |
}, |
|
35 |
"minimum-stability": "dev", |
|
36 |
"prefer-stable": true, |
|
37 |
"scripts": { |
|
38 |
"post-root-package-install": [ |
|
39 |
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" |
|
40 |
] |
|
41 |
} |
|
42 |
} |
composer.lock | ||
---|---|---|
1 |
{ |
|
2 |
"_readme": [ |
|
3 |
"This file locks the dependencies of your project to a known state", |
|
4 |
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", |
|
5 |
"This file is @generated automatically" |
|
6 |
], |
|
7 |
"content-hash": "28ba88bb80ebeca44000d28a62b18261", |
|
8 |
"packages": [ |
|
9 |
{ |
|
10 |
"name": "brick/math", |
|
11 |
"version": "0.9.3", |
|
12 |
"source": { |
|
13 |
"type": "git", |
|
14 |
"url": "https://github.com/brick/math.git", |
|
15 |
"reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae" |
|
16 |
}, |
|
17 |
"dist": { |
|
18 |
"type": "zip", |
|
19 |
"url": "https://api.github.com/repos/brick/math/zipball/ca57d18f028f84f777b2168cd1911b0dee2343ae", |
|
20 |
"reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae", |
|
21 |
"shasum": "" |
|
22 |
}, |
|
23 |
"require": { |
|
24 |
"ext-json": "*", |
|
25 |
"php": "^7.1 || ^8.0" |
|
26 |
}, |
|
27 |
"require-dev": { |
|
28 |
"php-coveralls/php-coveralls": "^2.2", |
|
29 |
"phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0", |
|
30 |
"vimeo/psalm": "4.9.2" |
|
31 |
}, |
|
32 |
"type": "library", |
|
33 |
"autoload": { |
|
34 |
"psr-4": { |
|
35 |
"Brick\\Math\\": "src/" |
|
36 |
} |
|
37 |
}, |
|
38 |
"notification-url": "https://packagist.org/downloads/", |
|
39 |
"license": [ |
|
40 |
"MIT" |
|
41 |
], |
|
42 |
"description": "Arbitrary-precision arithmetic library", |
|
43 |
"keywords": [ |
|
44 |
"Arbitrary-precision", |
|
45 |
"BigInteger", |
|
46 |
"BigRational", |
|
47 |
"arithmetic", |
|
48 |
"bigdecimal", |
|
49 |
"bignum", |
|
50 |
"brick", |
|
51 |
"math" |
|
52 |
], |
|
53 |
"support": { |
|
54 |
"issues": "https://github.com/brick/math/issues", |
|
55 |
"source": "https://github.com/brick/math/tree/0.9.3" |
|
56 |
}, |
|
57 |
"funding": [ |
|
58 |
{ |
|
59 |
"url": "https://github.com/BenMorel", |
|
60 |
"type": "github" |
|
61 |
}, |
|
62 |
{ |
|
63 |
"url": "https://tidelift.com/funding/github/packagist/brick/math", |
|
64 |
"type": "tidelift" |
|
65 |
} |
|
66 |
], |
|
67 |
"time": "2021-08-15T20:50:18+00:00" |
|
68 |
}, |
|
69 |
{ |
|
70 |
"name": "directorytree/ldaprecord", |
|
71 |
"version": "v2.6.3", |
|
72 |
"source": { |
|
73 |
"type": "git", |
|
74 |
"url": "https://github.com/DirectoryTree/LdapRecord.git", |
|
75 |
"reference": "5c93ec6d1ef458290825a8b0a148946dce7c1e7a" |
|
76 |
}, |
|
77 |
"dist": { |
|
78 |
"type": "zip", |
|
79 |
"url": "https://api.github.com/repos/DirectoryTree/LdapRecord/zipball/5c93ec6d1ef458290825a8b0a148946dce7c1e7a", |
|
80 |
"reference": "5c93ec6d1ef458290825a8b0a148946dce7c1e7a", |
|
81 |
"shasum": "" |
|
82 |
}, |
|
83 |
"require": { |
|
84 |
"ext-json": "*", |
|
85 |
"ext-ldap": "*", |
|
86 |
"illuminate/contracts": "^5.0|^6.0|^7.0|^8.0", |
|
87 |
"nesbot/carbon": "^1.0|^2.0", |
|
88 |
"php": ">=7.3", |
|
89 |
"psr/log": "^1.0", |
|
90 |
"psr/simple-cache": "^1.0", |
|
91 |
"tightenco/collect": "^5.6|^6.0|^7.0|^8.0" |
|
92 |
}, |
|
93 |
"require-dev": { |
|
94 |
"mockery/mockery": "^1.0", |
|
95 |
"phpunit/phpunit": "^8.0", |
|
96 |
"spatie/ray": "^1.24" |
|
97 |
}, |
|
98 |
"type": "library", |
|
99 |
"autoload": { |
|
100 |
"psr-4": { |
|
101 |
"LdapRecord\\": "src/" |
|
102 |
} |
|
103 |
}, |
|
104 |
"notification-url": "https://packagist.org/downloads/", |
|
105 |
"license": [ |
|
106 |
"MIT" |
|
107 |
], |
|
108 |
"authors": [ |
|
109 |
{ |
|
110 |
"name": "Steve Bauman", |
|
111 |
"email": "steven_bauman@outlook.com", |
|
112 |
"role": "Developer" |
|
113 |
} |
|
114 |
], |
|
115 |
"description": "A fully-featured LDAP ORM.", |
|
116 |
"homepage": "https://www.ldaprecord.com", |
|
117 |
"keywords": [ |
|
118 |
"active directory", |
|
119 |
"ad", |
|
120 |
"adLDAP", |
|
121 |
"adldap2", |
|
122 |
"directory", |
|
123 |
"ldap", |
|
124 |
"ldaprecord", |
|
125 |
"orm", |
|
126 |
"windows" |
|
127 |
], |
|
128 |
"support": { |
|
129 |
"docs": "https://ldaprecord.com", |
|
130 |
"email": "steven_bauman@outlook.com", |
|
131 |
"issues": "https://github.com/DirectoryTree/LdapRecord/issues", |
|
132 |
"source": "https://github.com/DirectoryTree/LdapRecord" |
|
133 |
}, |
|
134 |
"funding": [ |
|
135 |
{ |
|
136 |
"url": "https://github.com/stevebauman", |
|
137 |
"type": "github" |
|
138 |
} |
|
139 |
], |
|
140 |
"time": "2021-08-05T21:52:43+00:00" |
|
141 |
}, |
|
142 |
{ |
|
143 |
"name": "doctrine/inflector", |
|
144 |
"version": "2.0.3", |
|
145 |
"source": { |
|
146 |
"type": "git", |
|
147 |
"url": "https://github.com/doctrine/inflector.git", |
|
148 |
"reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210" |
|
149 |
}, |
|
150 |
"dist": { |
|
151 |
"type": "zip", |
|
152 |
"url": "https://api.github.com/repos/doctrine/inflector/zipball/9cf661f4eb38f7c881cac67c75ea9b00bf97b210", |
|
153 |
"reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210", |
|
154 |
"shasum": "" |
|
155 |
}, |
|
156 |
"require": { |
|
157 |
"php": "^7.2 || ^8.0" |
|
158 |
}, |
|
159 |
"require-dev": { |
|
160 |
"doctrine/coding-standard": "^7.0", |
|
161 |
"phpstan/phpstan": "^0.11", |
|
162 |
"phpstan/phpstan-phpunit": "^0.11", |
|
163 |
"phpstan/phpstan-strict-rules": "^0.11", |
|
164 |
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" |
|
165 |
}, |
|
166 |
"type": "library", |
|
167 |
"extra": { |
|
168 |
"branch-alias": { |
|
169 |
"dev-master": "2.0.x-dev" |
|
170 |
} |
|
171 |
}, |
|
172 |
"autoload": { |
|
173 |
"psr-4": { |
|
174 |
"Doctrine\\Inflector\\": "lib/Doctrine/Inflector" |
|
175 |
} |
|
176 |
}, |
|
177 |
"notification-url": "https://packagist.org/downloads/", |
|
178 |
"license": [ |
|
179 |
"MIT" |
|
180 |
], |
|
181 |
"authors": [ |
|
182 |
{ |
|
183 |
"name": "Guilherme Blanco", |
|
184 |
"email": "guilhermeblanco@gmail.com" |
|
185 |
}, |
|
186 |
{ |
|
187 |
"name": "Roman Borschel", |
|
188 |
"email": "roman@code-factory.org" |
|
189 |
}, |
|
190 |
{ |
|
191 |
"name": "Benjamin Eberlei", |
|
192 |
"email": "kontakt@beberlei.de" |
|
193 |
}, |
|
194 |
{ |
|
195 |
"name": "Jonathan Wage", |
|
196 |
"email": "jonwage@gmail.com" |
|
197 |
}, |
|
198 |
{ |
|
199 |
"name": "Johannes Schmitt", |
|
200 |
"email": "schmittjoh@gmail.com" |
|
201 |
} |
|
202 |
], |
|
203 |
"description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", |
|
204 |
"homepage": "https://www.doctrine-project.org/projects/inflector.html", |
|
205 |
"keywords": [ |
|
206 |
"inflection", |
|
207 |
"inflector", |
|
208 |
"lowercase", |
|
209 |
"manipulation", |
|
210 |
"php", |
|
211 |
"plural", |
|
212 |
"singular", |
|
213 |
"strings", |
|
214 |
"uppercase", |
|
215 |
"words" |
|
216 |
], |
|
217 |
"support": { |
|
218 |
"issues": "https://github.com/doctrine/inflector/issues", |
|
219 |
"source": "https://github.com/doctrine/inflector/tree/2.0.x" |
|
220 |
}, |
|
221 |
"funding": [ |
|
222 |
{ |
|
223 |
"url": "https://www.doctrine-project.org/sponsorship.html", |
|
224 |
"type": "custom" |
|
225 |
}, |
|
226 |
{ |
|
227 |
"url": "https://www.patreon.com/phpdoctrine", |
|
228 |
"type": "patreon" |
|
229 |
}, |
|
230 |
{ |
|
231 |
"url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", |
|
232 |
"type": "tidelift" |
|
233 |
} |
|
234 |
], |
|
235 |
"time": "2020-05-29T15:13:26+00:00" |
|
236 |
}, |
|
237 |
{ |
|
238 |
"name": "doctrine/lexer", |
|
239 |
"version": "1.2.1", |
|
240 |
"source": { |
|
241 |
"type": "git", |
|
242 |
"url": "https://github.com/doctrine/lexer.git", |
|
243 |
"reference": "e864bbf5904cb8f5bb334f99209b48018522f042" |
|
244 |
}, |
|
245 |
"dist": { |
|
246 |
"type": "zip", |
|
247 |
"url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", |
|
248 |
"reference": "e864bbf5904cb8f5bb334f99209b48018522f042", |
|
249 |
"shasum": "" |
|
250 |
}, |
|
251 |
"require": { |
|
252 |
"php": "^7.2 || ^8.0" |
|
253 |
}, |
|
254 |
"require-dev": { |
|
255 |
"doctrine/coding-standard": "^6.0", |
|
256 |
"phpstan/phpstan": "^0.11.8", |
|
257 |
"phpunit/phpunit": "^8.2" |
|
258 |
}, |
|
259 |
"type": "library", |
|
260 |
"extra": { |
|
261 |
"branch-alias": { |
|
262 |
"dev-master": "1.2.x-dev" |
|
263 |
} |
|
264 |
}, |
|
265 |
"autoload": { |
|
266 |
"psr-4": { |
|
267 |
"Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" |
|
268 |
} |
|
269 |
}, |
|
270 |
"notification-url": "https://packagist.org/downloads/", |
|
271 |
"license": [ |
|
272 |
"MIT" |
|
273 |
], |
|
274 |
"authors": [ |
|
275 |
{ |
|
276 |
"name": "Guilherme Blanco", |
|
277 |
"email": "guilhermeblanco@gmail.com" |
|
278 |
}, |
|
279 |
{ |
|
280 |
"name": "Roman Borschel", |
|
281 |
"email": "roman@code-factory.org" |
|
282 |
}, |
|
283 |
{ |
|
284 |
"name": "Johannes Schmitt", |
|
285 |
"email": "schmittjoh@gmail.com" |
|
286 |
} |
|
287 |
], |
|
288 |
"description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", |
|
289 |
"homepage": "https://www.doctrine-project.org/projects/lexer.html", |
|
290 |
"keywords": [ |
|
291 |
"annotations", |
|
292 |
"docblock", |
|
293 |
"lexer", |
|
294 |
"parser", |
|
295 |
"php" |
|
296 |
], |
|
297 |
"support": { |
|
298 |
"issues": "https://github.com/doctrine/lexer/issues", |
|
299 |
"source": "https://github.com/doctrine/lexer/tree/1.2.1" |
|
300 |
}, |
|
301 |
"funding": [ |
|
302 |
{ |
|
303 |
"url": "https://www.doctrine-project.org/sponsorship.html", |
|
304 |
"type": "custom" |
|
305 |
}, |
|
306 |
{ |
|
307 |
"url": "https://www.patreon.com/phpdoctrine", |
|
308 |
"type": "patreon" |
|
309 |
}, |
|
310 |
{ |
|
311 |
"url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", |
|
312 |
"type": "tidelift" |
|
313 |
} |
|
314 |
], |
|
315 |
"time": "2020-05-25T17:44:05+00:00" |
|
316 |
}, |
|
317 |
{ |
|
318 |
"name": "dragonmantank/cron-expression", |
|
319 |
"version": "v3.1.0", |
|
320 |
"source": { |
|
321 |
"type": "git", |
|
322 |
"url": "https://github.com/dragonmantank/cron-expression.git", |
|
323 |
"reference": "7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c" |
|
324 |
}, |
|
325 |
"dist": { |
|
326 |
"type": "zip", |
|
327 |
"url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c", |
|
328 |
"reference": "7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c", |
|
329 |
"shasum": "" |
|
330 |
}, |
|
331 |
"require": { |
|
332 |
"php": "^7.2|^8.0", |
|
333 |
"webmozart/assert": "^1.7.0" |
|
334 |
}, |
|
335 |
"replace": { |
|
336 |
"mtdowling/cron-expression": "^1.0" |
|
337 |
}, |
|
338 |
"require-dev": { |
|
339 |
"phpstan/extension-installer": "^1.0", |
|
340 |
"phpstan/phpstan": "^0.12", |
|
341 |
"phpstan/phpstan-webmozart-assert": "^0.12.7", |
|
342 |
"phpunit/phpunit": "^7.0|^8.0|^9.0" |
|
343 |
}, |
|
344 |
"type": "library", |
|
345 |
"autoload": { |
|
346 |
"psr-4": { |
|
347 |
"Cron\\": "src/Cron/" |
|
348 |
} |
|
349 |
}, |
|
350 |
"notification-url": "https://packagist.org/downloads/", |
|
351 |
"license": [ |
|
352 |
"MIT" |
|
353 |
], |
|
354 |
"authors": [ |
|
355 |
{ |
|
356 |
"name": "Chris Tankersley", |
|
357 |
"email": "chris@ctankersley.com", |
|
358 |
"homepage": "https://github.com/dragonmantank" |
|
359 |
} |
|
360 |
], |
|
361 |
"description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", |
|
362 |
"keywords": [ |
|
363 |
"cron", |
|
364 |
"schedule" |
|
365 |
], |
|
366 |
"support": { |
|
367 |
"issues": "https://github.com/dragonmantank/cron-expression/issues", |
|
368 |
"source": "https://github.com/dragonmantank/cron-expression/tree/v3.1.0" |
|
369 |
}, |
|
370 |
"funding": [ |
|
371 |
{ |
|
372 |
"url": "https://github.com/dragonmantank", |
|
373 |
"type": "github" |
|
374 |
} |
|
375 |
], |
|
376 |
"time": "2020-11-24T19:55:57+00:00" |
|
377 |
}, |
|
378 |
{ |
|
379 |
"name": "egulias/email-validator", |
|
380 |
"version": "2.1.25", |
|
381 |
"source": { |
|
382 |
"type": "git", |
|
383 |
"url": "https://github.com/egulias/EmailValidator.git", |
|
384 |
"reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4" |
|
385 |
}, |
|
386 |
"dist": { |
|
387 |
"type": "zip", |
|
388 |
"url": "https://api.github.com/repos/egulias/EmailValidator/zipball/0dbf5d78455d4d6a41d186da50adc1122ec066f4", |
|
389 |
"reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4", |
|
390 |
"shasum": "" |
|
391 |
}, |
|
392 |
"require": { |
|
393 |
"doctrine/lexer": "^1.0.1", |
|
394 |
"php": ">=5.5", |
|
395 |
"symfony/polyfill-intl-idn": "^1.10" |
|
396 |
}, |
|
397 |
"require-dev": { |
|
398 |
"dominicsayers/isemail": "^3.0.7", |
|
399 |
"phpunit/phpunit": "^4.8.36|^7.5.15", |
|
400 |
"satooshi/php-coveralls": "^1.0.1" |
|
401 |
}, |
|
402 |
"suggest": { |
|
403 |
"ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" |
|
404 |
}, |
|
405 |
"type": "library", |
|
406 |
"extra": { |
|
407 |
"branch-alias": { |
|
408 |
"dev-master": "2.1.x-dev" |
|
409 |
} |
|
410 |
}, |
|
411 |
"autoload": { |
|
412 |
"psr-4": { |
|
413 |
"Egulias\\EmailValidator\\": "src" |
|
414 |
} |
|
415 |
}, |
|
416 |
"notification-url": "https://packagist.org/downloads/", |
|
417 |
"license": [ |
|
418 |
"MIT" |
|
419 |
], |
|
420 |
"authors": [ |
|
421 |
{ |
|
422 |
"name": "Eduardo Gulias Davis" |
|
423 |
} |
|
424 |
], |
|
425 |
"description": "A library for validating emails against several RFCs", |
|
426 |
"homepage": "https://github.com/egulias/EmailValidator", |
|
427 |
"keywords": [ |
|
428 |
"email", |
|
429 |
"emailvalidation", |
|
430 |
"emailvalidator", |
|
431 |
"validation", |
|
432 |
"validator" |
|
433 |
], |
|
434 |
"support": { |
|
435 |
"issues": "https://github.com/egulias/EmailValidator/issues", |
|
436 |
"source": "https://github.com/egulias/EmailValidator/tree/2.1.25" |
|
437 |
}, |
|
438 |
"funding": [ |
|
439 |
{ |
|
440 |
"url": "https://github.com/egulias", |
|
441 |
"type": "github" |
|
442 |
} |
|
443 |
], |
|
444 |
"time": "2020-12-29T14:50:06+00:00" |
|
445 |
}, |
|
446 |
{ |
|
447 |
"name": "graham-campbell/result-type", |
|
448 |
"version": "v1.0.1", |
|
449 |
"source": { |
|
450 |
"type": "git", |
|
451 |
"url": "https://github.com/GrahamCampbell/Result-Type.git", |
|
452 |
"reference": "7e279d2cd5d7fbb156ce46daada972355cea27bb" |
|
453 |
}, |
|
454 |
"dist": { |
|
455 |
"type": "zip", |
|
456 |
"url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/7e279d2cd5d7fbb156ce46daada972355cea27bb", |
|
457 |
"reference": "7e279d2cd5d7fbb156ce46daada972355cea27bb", |
|
458 |
"shasum": "" |
|
459 |
}, |
|
460 |
"require": { |
|
461 |
"php": "^7.0|^8.0", |
|
462 |
"phpoption/phpoption": "^1.7.3" |
|
463 |
}, |
|
464 |
"require-dev": { |
|
465 |
"phpunit/phpunit": "^6.5|^7.5|^8.5|^9.0" |
|
466 |
}, |
|
467 |
"type": "library", |
|
468 |
"extra": { |
|
469 |
"branch-alias": { |
|
470 |
"dev-master": "1.0-dev" |
|
471 |
} |
|
472 |
}, |
|
473 |
"autoload": { |
|
474 |
"psr-4": { |
|
475 |
"GrahamCampbell\\ResultType\\": "src/" |
|
476 |
} |
|
477 |
}, |
|
478 |
"notification-url": "https://packagist.org/downloads/", |
|
479 |
"license": [ |
|
480 |
"MIT" |
|
481 |
], |
|
482 |
"authors": [ |
|
483 |
{ |
|
484 |
"name": "Graham Campbell", |
|
485 |
"email": "graham@alt-three.com" |
|
486 |
} |
|
487 |
], |
|
488 |
"description": "An Implementation Of The Result Type", |
|
489 |
"keywords": [ |
|
490 |
"Graham Campbell", |
|
491 |
"GrahamCampbell", |
|
492 |
"Result Type", |
|
493 |
"Result-Type", |
|
494 |
"result" |
|
495 |
], |
|
496 |
"support": { |
|
497 |
"issues": "https://github.com/GrahamCampbell/Result-Type/issues", |
|
498 |
"source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.0.1" |
|
499 |
}, |
|
500 |
"funding": [ |
|
501 |
{ |
|
502 |
"url": "https://github.com/GrahamCampbell", |
|
503 |
"type": "github" |
|
504 |
}, |
|
505 |
{ |
|
506 |
"url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", |
|
507 |
"type": "tidelift" |
|
508 |
} |
|
509 |
], |
|
510 |
"time": "2020-04-13T13:17:36+00:00" |
|
511 |
}, |
Exportar para Unified diff