authorize('viewAny', [Service::class, $server]); $installedVersions = Service::query() ->where('type', 'php') ->where('server_id', $server->id) ->simplePaginate(config('web.pagination_size')); return Inertia::render('php/index', [ 'installedVersions' => ServiceResource::collection($installedVersions), ]); } #[Get('/{service}/ini', name: 'php.ini')] public function ini(Request $request, Server $server, Service $service): JsonResponse { $this->authorize('view', $service); $ini = app(GetPHPIni::class)->getIni($server, $request->input()); return response()->json([ 'ini' => $ini, ]); } #[Patch('/{service}/ini', name: 'php.ini.update')] public function updateIni(Request $request, Server $server, Service $service): RedirectResponse { $this->authorize('update', $service); app(UpdatePHPIni::class)->update($server, $request->input()); return back()->with('success', 'PHP ini file updated successfully.'); } #[Post('/{service}/install-extension', name: 'php.install-extension')] public function installExtension(Request $request, Server $server, Service $service): RedirectResponse { $this->authorize('update', $service); app(InstallPHPExtension::class)->install($server, $request->input()); return back()->with('info', 'PHP extension is being installed.'); } /** * @throws SSHError */ #[Post('/{service}/default-cli', name: 'php.default-cli')] public function defaultCli(Request $request, Server $server, Service $service): RedirectResponse { $this->authorize('update', $service); app(ChangeDefaultCli::class)->change($server, $request->input()); return back()->with('success', 'Default PHP CLI changed to '.$service->version.'.'); } }