Mark PHP version compatibility fallback as legitimate in Php_Fixer
Add public directory asset support to bundle system Fix PHP Fixer to replace ALL Rsx\ FQCNs with simple class names 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -278,12 +278,15 @@ class Frontend_Bundle extends Rsx_Bundle_Abstract
|
||||
'rsx/theme/variables.scss', // Order matters
|
||||
'rsx/app/frontend', // Directory
|
||||
'rsx/models', // For JS stubs
|
||||
'/public/vendor/css/core.css', // Public directory asset (filemtime cache-busting)
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Bundles support `/public/` prefix for including static assets from public directories with automatic cache-busting.
|
||||
|
||||
Auto-compiles on page reload in development.
|
||||
|
||||
```blade
|
||||
@@ -517,18 +520,66 @@ User_Model::create(['email' => $email]);
|
||||
|
||||
### Enums
|
||||
|
||||
**🔴 CRITICAL: Enum columns MUST be integers in both database and model definition**
|
||||
|
||||
Enum columns store integer values in the database, NOT strings. The model definition maps those integers to constants and labels.
|
||||
|
||||
```php
|
||||
// ✅ CORRECT - Integer keys map to constants
|
||||
public static $enums = [
|
||||
'status_id' => [
|
||||
1 => ['constant' => 'STATUS_ACTIVE', 'label' => 'Active'],
|
||||
2 => ['constant' => 'STATUS_INACTIVE', 'label' => 'Inactive'],
|
||||
3 => ['constant' => 'STATUS_PENDING', 'label' => 'Pending'],
|
||||
],
|
||||
'priority_id' => [
|
||||
1 => ['constant' => 'PRIORITY_LOW', 'label' => 'Low'],
|
||||
2 => ['constant' => 'PRIORITY_MEDIUM', 'label' => 'Medium'],
|
||||
3 => ['constant' => 'PRIORITY_HIGH', 'label' => 'High'],
|
||||
],
|
||||
];
|
||||
|
||||
// ❌ WRONG - String keys are NOT allowed
|
||||
public static $enums = [
|
||||
'status' => [ // ❌ Column name should be status_id
|
||||
'active' => ['constant' => 'STATUS_ACTIVE', 'label' => 'Active'], // ❌ String key
|
||||
'inactive' => ['constant' => 'STATUS_INACTIVE', 'label' => 'Inactive'], // ❌ String key
|
||||
],
|
||||
];
|
||||
|
||||
// Usage
|
||||
$user->status_id = User_Model::STATUS_ACTIVE;
|
||||
$user->status_id = User_Model::STATUS_ACTIVE; // Sets to 1
|
||||
echo $user->status_label; // "Active"
|
||||
echo $user->status_id; // 1 (integer)
|
||||
```
|
||||
|
||||
**Migration Requirements**: Enum columns must be INT(11), NEVER VARCHAR:
|
||||
|
||||
```php
|
||||
public function up()
|
||||
{
|
||||
DB::statement("
|
||||
CREATE TABLE users (
|
||||
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
status_id INT(11) NOT NULL DEFAULT 1, -- ✅ CORRECT - Enum column
|
||||
priority_id INT(11) NOT NULL DEFAULT 1, -- ✅ CORRECT - Enum column
|
||||
is_active TINYINT(1) NOT NULL DEFAULT 1, -- Boolean field (0=false, 1=true)
|
||||
INDEX idx_status_id (status_id),
|
||||
INDEX idx_priority_id (priority_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
|
||||
");
|
||||
}
|
||||
|
||||
// ❌ WRONG - VARCHAR columns are NOT allowed for enums
|
||||
CREATE TABLE users (
|
||||
status VARCHAR(20) NOT NULL DEFAULT 'active' -- ❌ WRONG - Use INT(11) instead
|
||||
);
|
||||
```
|
||||
|
||||
**Column Type Guidelines**:
|
||||
- **INT(11)** - ALL enum columns use this type
|
||||
- **TINYINT(1)** - Boolean fields ONLY (stores 0 or 1, treated as true/false in PHP)
|
||||
|
||||
### Migrations
|
||||
|
||||
**Forward-only, no rollbacks.**
|
||||
@@ -913,9 +964,11 @@ class User_Model extends Rsx_Model_Abstract
|
||||
protected $table = 'users';
|
||||
protected $fillable = []; // Always empty - no mass assignment
|
||||
|
||||
// Enum columns - MUST use integer keys
|
||||
public static $enums = [
|
||||
'status_id' => [
|
||||
1 => ['constant' => 'STATUS_ACTIVE', 'label' => 'Active'],
|
||||
2 => ['constant' => 'STATUS_INACTIVE', 'label' => 'Inactive'],
|
||||
],
|
||||
];
|
||||
}
|
||||
@@ -930,9 +983,12 @@ public function up()
|
||||
CREATE TABLE articles (
|
||||
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
title VARCHAR(255) NOT NULL,
|
||||
status_id TINYINT(1) NOT NULL DEFAULT 1,
|
||||
status_id INT(11) NOT NULL DEFAULT 1, -- Enum column
|
||||
priority_id INT(11) NOT NULL DEFAULT 1, -- Enum column
|
||||
is_published TINYINT(1) NOT NULL DEFAULT 0, -- Boolean field (0 or 1)
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
INDEX idx_status_id (status_id)
|
||||
INDEX idx_status_id (status_id),
|
||||
INDEX idx_priority_id (priority_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
|
||||
");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user