PHP code example of stechstudio / laravel-docent
1. Go to this page and download the library: Download stechstudio/laravel-docent library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
stechstudio / laravel-docent example snippets
'sites' => [
'docs' => [
'admin' => [
'uploads' => [
'public_cache' => true,
],
],
],
],
'content' => [
'database' => [
'sanitize_html' => false,
],
],
use STS\Docent\Facades\Docent;
Docent::value('account.plan', fn ($context) => $context->user?->account->plan->name ?? 'Free');
Docent::link('billing.settings', fn () => route('billing.settings'));
Docent::condition('advanced-exports', fn ($context) => $context->user?->account->allowsAdvancedExports() ?? false);
Docent::component('plan-usage', PlanUsageComponent::class);
Docent::audience('billing-admin', fn ($context) => $context->user?->can('billing.manage') ?? false);
Docent::value('support.email', fn () => '[email protected] ');
Docent::site('admin')->value('support.email', fn () => '[email protected] ');
Docent::value('support.portal', fn ($context) => match ($context->site?->key) {
'admin' => route('admin.support'),
default => route('support'),
});
// config/docent.php
'check' => [
'abilities' => App\Enums\Permission::class,
],
Docent::abilities(fn () => Permission::query()->pluck('name')->all());
'check' => [
'rules' => ['gated-link' => 'warning'],
],
'render' => [
'strict_tokens' => true,
],
'ai' => [
'enabled' => true,
'provider' => env('DOCENT_AI_PROVIDER'),
'model' => env('DOCENT_AI_MODEL'),
'language' => 'viewer',
],
'conversation' => [
'ttl' => 7200,
'max_turns' => 10,
'history_budget' => 12000,
],
'retrieval' => [
'max_pages' => 8,
'candidate_limit' => 24,
'debug' => false,
],
'insights' => [
'enabled' => true,
'categories' => [
'pages' => true,
'search' => true,
'assistant' => true,
],
'retention_days' => 90,
'store_query_text' => true,
'redact_query_text' => true,
],
use STS\Docent\Testing\InteractsWithDocs;
$this->docs()->page('billing/payment-methods')->as($admin)
->assertVisible()
->assertSee('Add a card');
$this->docs()->search('payroll', as: $member)
->assertMissing('Payroll Reports');
$this->docs()->as($member)->assertAllPagesRender();
foreach ($this->docs()->pages() as $slug) {
// every page is in navigation, has a description, whatever you need
}
// config/docent.php
return [
'default' => 'public',
// Shared defaults. Any site may override these sections.
'database' => ['enabled' => true, 'connection' => null],
'authorization' => ['denied_response' => 404],
'search' => ['enabled' => true],
'theme' => ['accent' => '#0284c7', 'logo' => null],
'sites' => [
'public' => [
'name' => 'Help Center',
'description' => 'Product documentation for customers.',
'route' => [
'prefix' => 'help',
'domain' => null,
'middleware' => ['web'],
],
'filesystem' => ['path' => resource_path('docs-public')],
],
'admin' => [
'name' => 'Admin Docs',
'description' => 'Internal operating documentation.',
'route' => [
'prefix' => 'admin/docs',
'domain' => 'admin.example.com',
'middleware' => ['web', 'auth'],
],
'filesystem' => ['path' => resource_path('docs-admin')],
'admin' => [
'enabled' => true,
'path' => 'admin',
'gate' => 'manageAdminDocs',
],
'theme' => ['accent' => '#e11d48'],
],
],
];
route('docent.public.home');
route('docent.admin.show', ['slug' => 'internal/runbook']);
text
$ php artisan docent:check
Docent looks great — no problems found in 24 pages.
bash
composer bash
php artisan docent:check # check every site; errors exit 1
php artisan docent:check --site=admin # check one site's corpus
php artisan docent:check --strict --site=admin # warnings fail too
bash
php artisan docent:clear --site=admin
php artisan docent:insights:prune --site=admin