应激反应是什么意思| 憋不住大便是什么原因造成的| 孕妇什么情况下打肝素| 外冷内热是什么症状| 普拉提是什么| 莺是什么鸟| 7点至9点是什么时辰| 有什么花| wrangler是什么牌子| 女人什么时候是安全期| 什么是甲减有什么症状| 龙是什么命| 属马本命佛是什么佛| 转载是什么意思| 梦见抓了好多鱼是什么意思| 关节炎吃什么药好得快| 腐女是什么意思| 什么的玉米| 3月19是什么星座| 软饮料是指什么| 人面桃花相映红是什么意思| butter是什么意思| w是什么意思| 过敏性荨麻疹吃什么药| 手脚心热是什么原因| 心脾两虚吃什么药| 辜负是什么意思| 红楼梦什么朝代| 脑梗吃什么药效果最好| 断层是什么意思| gi什么意思| pigeon是什么意思| 北京市长什么级别| 手足情深什么意思| 黄体生成素高是什么原因| 为什么叫基围虾| 感冒了吃什么食物最好| 一什么树干| 昙花什么时候开花| 补铁的药什么时候吃最好| 属猪的贵人属相是什么| 纯碱是什么| 环磷酰胺是什么药| 腰酸背痛挂什么科| 肝火旺盛失眠吃什么药| 脚气有什么症状| hx是什么| 脉浮是什么意思| 孕妇吃什么好对胎儿好三个月前期| 制加手念什么| 梦见老公回来了是什么征兆| 七情六欲是什么意思| 经常饿是什么原因| 为什么要做试管婴儿| 扁桃体肥大吃什么药好得快| 跖疣是什么东西| 吃什么补肝血| 什么的镜子| 咳嗽适合吃什么水果| 破瓦法是什么| 金达莱是什么花| 鼻子毛白了是什么原因| 意下如何什么意思| 想请假找什么理由好| lemaire是什么品牌| 螃蟹的血是什么颜色的| 纯净水是什么水| 8月15是什么星座| 碳水化合物是什么意思| 什么食物含钙量最高| 贵州有什么美食| 社保局是干什么的| 头疼发热是什么原因| 口羊读什么| 全身发热是什么原因| 锚什么意思| 母猫怀孕有什么症状| 白芷泡水喝有什么功效| 间是什么结构| 蓟什么意思| 狗奴是什么意思| 本科专科有什么区别| 失眠看什么科| 多出汗是什么原因| 什么是辛辣食物| 不安分是什么意思| 如什么如什么成语| 孛儿只斤现在姓什么| 娃哈哈纯净水是什么水| 拌嘴是什么意思| 鸽子拉水便是什么原因| 肠胀气是什么原因引起的怎么解决| 什么原因导致月经量少| 泪囊炎用什么眼药水| 黄体功能不足吃什么药| 11月18是什么星座| 玫瑰花像什么| 情缘是什么意思| 吹风扇感冒了吃什么药| 五月四号什么星座| 什么无为| 虚心接受是什么意思| 炎性增殖灶是什么意思| 不可小觑什么意思| 农历七月二十什么日子| 1984年属什么| 孕妇吃西红柿对胎儿有什么好处| 臭酸是什么| 办理港澳通行证需要什么证件| 体格检查是什么意思| 睡眠质量不好挂什么科| 丢包是什么意思| 空腹血糖17已经严重到什么时候| 灰指甲挂什么科| 起床口苦是什么原因| 白酒兑什么好喝| 皮肤过敏不能吃什么| 火疖子吃什么药| 后背刺痛什么原因引起的| 四川是什么生肖| 为什么小便会带血| 什么散步| 三个手念什么| 丝瓜是什么| 百合花什么颜色| 脑梗什么原因导致的| 睡觉打嗝是什么原因| 沈阳有什么好玩的地方| 黄果树是什么树| 破伤风什么情况需要打| 什么叫钝角| 正县级是什么级别| 突然眼睛充血是什么原因引起的| abo溶血症是什么| 喝什么饮料解酒| 释放天性是什么意思| 一心一意指什么生肖| 海绵体供血不足吃什么药| 月经期同房有什么危害| 范冰冰和洪金宝什么关系| 嘴唇干是什么原因引起的| 什么止咳最好| 医保和农村合作医疗有什么区别| 美甲什么颜色显手白| 口腔溃疡吃什么药| 核磁共振是查什么的| 取保候审需要什么条件| 血脂高吃什么能降下来| 百脚虫的出现意味什么| 冬天可以干什么| 四月十八日是什么日子| 咀嚼食用是什么意思| 飒的意思是什么| 吃什么改善睡眠| 红细胞是什么| 为什么感冒会流鼻涕| 为什么星星会眨眼| 天堂是什么意思| 下午三点到四点是什么时辰| 彩超跟b超有什么区别| 爱马仕配货是什么意思| 脑梗是什么病严重吗| 芦荟有什么作用| 不割包皮有什么影响吗| 甘油脂肪酸酯是什么| 猴和什么相冲| 为什么会得甲减| 退役是什么意思| 吃什么变聪明| 社保断了有什么影响| 老人头晕吃什么药效果好| 过敏是什么意思| 梵高是什么画派| 贲临是什么意思| 什么叫辟谷减肥法| 尿道感染应该吃什么药| 风凉话是什么意思| 移居改姓始为良是什么意思| 工作单位是什么意思| 虫草什么时候吃最好| 盆腔磁共振平扫能查出什么| 捞仔是什么意思| 气管炎挂什么科| 腿部抽筋是什么原因引起的| 取关是什么意思| 维生素d3吃多了有什么副作用| 羿字五行属什么| 潍坊有什么好玩的| 茯苓有什么功效| 偶发室上性早搏是什么意思| 2.7是什么星座| 哮喘吃什么食物好| 肚子绞痛吃什么药| 下压高是什么原因引起的| 低血压对身体有什么影响| 天气一热身上就痒是什么原因| 空调出风小没劲什么原因| 孙悟空是个什么样的人| 脾虚湿盛吃什么中药| 碱性磷酸酶高是什么病| 二网是什么意思| 利益最大化是什么意思| 花花世界是什么生肖| 什么族不吃猪肉| 吃维生素c和维生素e有什么好处| 聪明反被聪明误是什么意思| 李约瑟难题是什么| 稀奶油可以做什么| 慢性非萎缩性胃炎伴糜烂是什么意思| 溢字五行属什么| 儿保做些什么检查项目| 有什么放不下| 胎发什么时候剃最合适| 吃什么能养肝护肝| uu什么意思| 什么茶可以减肥消脂| 动脉瘤是什么| 葡萄和提子有什么区别| 梦见媳妇出轨什么预兆| 滋养细胞疾病是什么病| 红褐色是什么颜色| 什么网名好听又有内涵| 肠系膜淋巴结炎吃什么药| 症瘕痞块是什么意思| 哺乳期感冒吃什么药不影响哺乳| 宫腔镜是什么手术| 一冷就咳嗽是什么原因| 王字旁的字跟什么有关| 为什么大便是黑色的| 美特斯邦威是什么档次| 头皮发痒用什么洗发水| 肌酐高是什么原因引起的| 什么原因引起耳鸣| 丁香是什么| 什么能解酒| 白花花是什么意思| 身上长很多痣是什么原因| 红指什么生肖| 雌二醇高说明什么| 心梗有什么症状| 蜂蜜什么时候吃最好| 一年四季是什么生肖| uvb是什么意思| 生姜什么时候吃最好| 什么斗艳| 沱茶属于什么茶| 什么是篮球基本功| aa是什么病| 梦见剪头发是什么意思| 澳门打车用什么软件| 酷暑的反义词是什么| 白咖啡是什么| 莜面是什么面做的| 血小板上升是什么原因| 黑金刚是什么药| 主治医师是什么级别| 宫颈粘膜慢性炎是什么意思| 什么叫主动脉硬化| 6月6日是什么日子| 痤疮是由什么引起的| 咳嗽有痰吃什么药好得最快最有效| 什么情况下需要做活检| 九个月的宝宝吃什么辅食食谱| 胃疼做什么检查| 百度
Table of Contents
Step 1: Create a Migration
Step 2: Create a FeatureFlag Model
3. Create a Feature Service
4. Use Feature Flags in Your App
In Controllers
In Blade Templates
In Middleware (Optional)
5. Manage Flags via Artisan or Admin Panel
Artisan Command (Optional)
6. Consider Caching for Performance
Bonus: Use a Package (Optional)
Home PHP Framework Laravel How to implement feature flags in a Laravel app?

湖南日报:贫困群众满意是脱贫攻坚的最高标准

Jul 30, 2025 am 01:45 AM
laravel

百度 在三伏天喝上一杯冰凉的酸梅汤,不仅神清气爽,还有助于消食合中、生津止渴、除烦安神。

Choose a feature flag strategy such as config-based, database-driven, or third-party tools like Flagsmith. 2. Set up a database-driven system by creating a migration for a feature_flags table with name, enabled, and rules fields, then run the migration. 3. Create a FeatureFlag model with fillable attributes and casts for enabled and rules. 4. Build a FeatureFlagService to centralize logic, including an isEnabled method that checks flag status and evaluates rules like rollout percentage or allowed user IDs. 5. Use the service in controllers, Blade templates, and middleware to conditionally display features or restrict access. 6. Manage flags via Artisan commands or an admin panel, and implement caching using Laravel’s cache system to improve performance by storing flag states for a set duration, clearing cache when flags are updated. This approach ensures flexible, safe, and scalable feature rollouts in Laravel applications.

How to implement feature flags in a Laravel app?

Implementing feature flags in a Laravel app is a practical way to control feature rollouts, enable A/B testing, or safely deploy code without exposing it to all users immediately. Here’s how to do it effectively.

How to implement feature flags in a Laravel app?

1. Choose a Feature Flag Strategy

Before writing code, decide how you want to manage your flags:

  • Simple config-based flags – Good for basic on/off switches.
  • Database-driven flags – Better for dynamic control without redeploying.
  • Third-party tools – Like LaunchDarkly, Flagsmith, or Unleash – ideal for complex targeting, user segmentation, and analytics.

For most Laravel apps, a database-driven approach with a simple service wrapper gives a good balance of flexibility and control.

How to implement feature flags in a Laravel app?

2. Set Up a Database-Driven Feature Flag System

Step 1: Create a Migration

php artisan make:migration create_feature_flags_table
Schema::create('feature_flags', function (Blueprint $table) {
    $table->id();
    $table->string('name')->unique(); // e.g., 'new_dashboard'
    $table->boolean('enabled')->default(false);
    $table->json('rules')->nullable(); // For user-based, percentage rollouts, etc.
    $table->timestamps();
});

Run the migration:

php artisan migrate

Step 2: Create a FeatureFlag Model

php artisan make:model FeatureFlag
// app/Models/FeatureFlag.php
namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class FeatureFlag extends Model
{
    protected $fillable = ['name', 'enabled', 'rules'];
    protected $casts = [
        'enabled' => 'boolean',
        'rules' => 'array',
    ];
}

3. Create a Feature Service

This centralizes flag logic.

How to implement feature flags in a Laravel app?
php artisan make:service FeatureFlagService

Note: Laravel doesn’t have make:service by default. You can create the directory and class manually.

// app/Services/FeatureFlagService.php
namespace App\Services;

use App\Models\FeatureFlag;
use Illuminate\Support\Facades\Auth;

class FeatureFlagService
{
    public function isEnabled(string $flagName, $user = null): bool
    {
        $flag = FeatureFlag::where('name', $flagName)->first();

        if (!$flag || !$flag->enabled) {
            return false;
        }

        // Optional: Handle rules (e.g., percentage rollout, specific users)
        if ($flag->rules) {
            return $this->evaluateRules($flag->rules, $user ?: Auth::user());
        }

        return true;
    }

    private function evaluateRules(array $rules, $user = null): bool
    {
        // Example: Rollout to 10% of users
        if (isset($rules['rollout_percentage'])) {
            $percentage = $rules['rollout_percentage'];
            $userId = $user ? $user->id : rand(1, 1000);
            return (crc32((string) $userId) % 100) < $percentage;
        }

        // Example: Allow specific user IDs
        if (isset($rules['allowed_user_ids']) && $user) {
            return in_array($user->id, $rules['allowed_user_ids']);
        }

        return true;
    }
}

Register it in a service provider or resolve it via Laravel’s container.


4. Use Feature Flags in Your App

In Controllers

use App\Services\FeatureFlagService;

public function showDashboard(FeatureFlagService $features)
{
    if ($features->isEnabled('new_dashboard')) {
        return view('dashboard.new');
    }

    return view('dashboard.old');
}

In Blade Templates

@if(app(App\Services\FeatureFlagService::class)->isEnabled('new_ui'))
    <x-new-layout />
@else
    <x-old-layout />
@endif

In Middleware (Optional)

Create middleware to restrict routes:

php artisan make:middleware CheckFeatureFlag
public function handle($request, Closure $next, $flag)
{
    if (!app(FeatureFlagService::class)->isEnabled($flag)) {
        abort(403, 'Feature not available.');
    }

    return $next($request);
}

Register in Kernel.php and use:

Route::get('/beta', function () {
    // ...
})->middleware('feature:beta_access');

5. Manage Flags via Artisan or Admin Panel

Artisan Command (Optional)

php artisan make:command ToggleFeature
// In handle()
$flag = FeatureFlag::firstOrCreate(['name' => $this->argument('name')]);
$flag->enabled = $this->argument('state') === 'on';
$flag->save();

Usage:

php artisan feature:toggle new_dashboard on

6. Consider Caching for Performance

Since flags are checked frequently, cache them:

public function isEnabled(string $flagName, $user = null): bool
{
    $flag = cache()->remember('feature_flag:'.$flagName, 3600, function () use ($flagName) {
        return FeatureFlag::where('name', $flagName)->first();
    });

    // ... rest of logic
}

Remember to clear cache when updating flags.


Bonus: Use a Package (Optional)

Instead of building from scratch, consider:

These handle syncing, targeting, and UI.


Basically, you’ve got options — from simple config flags to full dynamic systems. Start small, use a service class, store flags in the DB, and scale as needed. The key is making flags easy to toggle and safe to leave in code.

The above is the detailed content of How to implement feature flags in a Laravel app?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

PHP Tutorial
1488
72
How to set environment variables in PHP environment Description of adding PHP running environment variables How to set environment variables in PHP environment Description of adding PHP running environment variables Jul 25, 2025 pm 08:33 PM

There are three main ways to set environment variables in PHP: 1. Global configuration through php.ini; 2. Passed through a web server (such as SetEnv of Apache or fastcgi_param of Nginx); 3. Use putenv() function in PHP scripts. Among them, php.ini is suitable for global and infrequently changing configurations, web server configuration is suitable for scenarios that need to be isolated, and putenv() is suitable for temporary variables. Persistence policies include configuration files (such as php.ini or web server configuration), .env files are loaded with dotenv library, and dynamic injection of variables in CI/CD processes. Security management sensitive information should be avoided hard-coded, and it is recommended to use.en

What is Configuration Caching in Laravel? What is Configuration Caching in Laravel? Jul 27, 2025 am 03:54 AM

Laravel's configuration cache improves performance by merging all configuration files into a single cache file. Enabling configuration cache in a production environment can reduce I/O operations and file parsing on each request, thereby speeding up configuration loading; 1. It should be enabled when the application is deployed, the configuration is stable and no frequent changes are required; 2. After enabling, modify the configuration, you need to re-run phpartisanconfig:cache to take effect; 3. Avoid using dynamic logic or closures that depend on runtime conditions in the configuration file; 4. When troubleshooting problems, you should first clear the cache, check the .env variables and re-cache.

How to develop AI intelligent form system with PHP PHP intelligent form design and analysis How to develop AI intelligent form system with PHP PHP intelligent form design and analysis Jul 25, 2025 pm 05:54 PM

When choosing a suitable PHP framework, you need to consider comprehensively according to project needs: Laravel is suitable for rapid development and provides EloquentORM and Blade template engines, which are convenient for database operation and dynamic form rendering; Symfony is more flexible and suitable for complex systems; CodeIgniter is lightweight and suitable for simple applications with high performance requirements. 2. To ensure the accuracy of AI models, we need to start with high-quality data training, reasonable selection of evaluation indicators (such as accuracy, recall, F1 value), regular performance evaluation and model tuning, and ensure code quality through unit testing and integration testing, while continuously monitoring the input data to prevent data drift. 3. Many measures are required to protect user privacy: encrypt and store sensitive data (such as AES

How to make PHP container support automatic construction? Continuously integrated CI configuration method of PHP environment How to make PHP container support automatic construction? Continuously integrated CI configuration method of PHP environment Jul 25, 2025 pm 08:54 PM

To enable PHP containers to support automatic construction, the core lies in configuring the continuous integration (CI) process. 1. Use Dockerfile to define the PHP environment, including basic image, extension installation, dependency management and permission settings; 2. Configure CI/CD tools such as GitLabCI, and define the build, test and deployment stages through the .gitlab-ci.yml file to achieve automatic construction, testing and deployment; 3. Integrate test frameworks such as PHPUnit to ensure that tests are automatically run after code changes; 4. Use automated deployment strategies such as Kubernetes to define deployment configuration through the deployment.yaml file; 5. Optimize Dockerfile and adopt multi-stage construction

Explain Laravel Eloquent Scopes. Explain Laravel Eloquent Scopes. Jul 26, 2025 am 07:22 AM

Laravel's EloquentScopes is a tool that encapsulates common query logic, divided into local scope and global scope. 1. The local scope is defined with a method starting with scope and needs to be called explicitly, such as Post::published(); 2. The global scope is automatically applied to all queries, often used for soft deletion or multi-tenant systems, and the Scope interface needs to be implemented and registered in the model; 3. The scope can be equipped with parameters, such as filtering articles by year or month, and corresponding parameters are passed in when calling; 4. Pay attention to naming specifications, chain calls, temporary disabling and combination expansion when using to improve code clarity and reusability.

PHP development user permission management monetization PHP permission control and role management PHP development user permission management monetization PHP permission control and role management Jul 25, 2025 pm 06:51 PM

User permission management is the core mechanism for realizing product monetization in PHP development. It separates users, roles and permissions through a role-based access control (RBAC) model to achieve flexible permission allocation and management. The specific steps include: 1. Design three tables of users, roles, and permissions and two intermediate tables of user_roles and role_permissions; 2. Implement permission checking methods in the code such as $user->can('edit_post'); 3. Use cache to improve performance; 4. Use permission control to realize product function layering and differentiated services, thereby supporting membership system and pricing strategies; 5. Avoid the permission granularity is too coarse or too fine, and use "investment"

How to use PHP combined with AI to analyze video content PHP intelligent video tag generation How to use PHP combined with AI to analyze video content PHP intelligent video tag generation Jul 25, 2025 pm 06:15 PM

The core idea of PHP combining AI for video content analysis is to let PHP serve as the backend "glue", first upload video to cloud storage, and then call AI services (such as Google CloudVideoAI, etc.) for asynchronous analysis; 2. PHP parses the JSON results, extract people, objects, scenes, voice and other information to generate intelligent tags and store them in the database; 3. The advantage is to use PHP's mature web ecosystem to quickly integrate AI capabilities, which is suitable for projects with existing PHP systems to efficiently implement; 4. Common challenges include large file processing (directly transmitted to cloud storage with pre-signed URLs), asynchronous tasks (introducing message queues), cost control (on-demand analysis, budget monitoring) and result optimization (label standardization); 5. Smart tags significantly improve visual

How to build a content payment platform through PHP How to implement PHP paid reading system How to build a content payment platform through PHP How to implement PHP paid reading system Jul 25, 2025 pm 06:30 PM

To build a PHP content payment platform, it is necessary to build a user management, content management, payment and permission control system. First, establish a user authentication system and use JWT to achieve lightweight authentication; second, design the backend management interface and database fields to manage paid content; third, integrate Alipay or WeChat payment and ensure process security; fourth, control user access rights through session or cookies. Choosing the Laravel framework can improve development efficiency, use watermarks and user management to prevent content theft, optimize performance requires coordinated improvement of code, database, cache and server configuration, and clear policies must be formulated and malicious behaviors must be prevented.

See all articles
医学mr是什么意思 爱情是个什么东西 锋芒的意思是什么 多囊有什么危害 阶段性是什么意思
胆经不通吃什么中成药 猫眼石是什么 射线是什么 大侠是什么意思 鳄梨是什么水果
睡觉脚抽筋是什么原因引起的 生蚝什么时候最肥 孕妇吃什么水果好对胎儿好 梦见桥断了是什么意思 小病不治下一句是什么
不着相是什么意思 什么什么致志 空调睡眠模式什么意思 入睡困难吃什么药效果最好 什么是自限性疾病
ivf是什么意思hcv8jop9ns4r.cn 卵巢下降是什么原因hcv8jop8ns7r.cn 青光眼是什么原因引起的hcv8jop0ns1r.cn 额头窄适合什么发型hcv8jop3ns0r.cn 夹腿是什么dayuxmw.com
酒后头疼吃什么hcv9jop5ns0r.cn 月经期间适合做什么运动hcv9jop5ns3r.cn 风云际会的意思是什么hcv8jop3ns8r.cn 五月七号是什么星座dayuxmw.com 什么叫磁场jiuxinfghf.com
正痛片别名叫什么hcv9jop7ns1r.cn gg什么意思hcv9jop7ns5r.cn 孩子白细胞高是什么原因hcv9jop5ns4r.cn 92是什么hcv8jop4ns4r.cn 金融数学学什么gangsutong.com
什么的太阳hcv9jop3ns1r.cn s925是什么金hcv8jop3ns4r.cn 津津有味的意思是什么hcv8jop9ns8r.cn 口水粘稠是什么原因hcv9jop0ns4r.cn 带状疱疹不能吃什么东西hcv8jop9ns5r.cn
百度