update
This commit is contained in:
65
.paul/codebase/stack.md
Normal file
65
.paul/codebase/stack.md
Normal file
@@ -0,0 +1,65 @@
|
||||
# Technology Stack
|
||||
|
||||
**Analysis Date:** 2026-05-05
|
||||
|
||||
## Languages
|
||||
|
||||
- **PHP 7.4+** — all server-side plugin logic (`Requires PHP: 7.4` in plugin header)
|
||||
- **JavaScript (ES5/IIFE)** — frontend calendar + booking form (`calendar.js`), admin panel JS (`admin.js`)
|
||||
- **SCSS** — frontend calendar styles (source at `frontend/assets/css/calendar.scss`; must be manually compiled)
|
||||
- **SQL** — custom table queries via `$wpdb->prepare()`
|
||||
|
||||
## Runtime
|
||||
|
||||
- **WordPress 6.0+** (`Requires at least: 6.0`)
|
||||
- **Elementor Pro** — optional; plugin checks `class_exists('\Elementor\Plugin')` and degrades gracefully
|
||||
- **MySQL** — custom table + WordPress standard tables
|
||||
|
||||
## Key Dependencies
|
||||
|
||||
| Dependency | Version | How Loaded |
|
||||
|-----------|---------|-----------|
|
||||
| FullCalendar | 6.1.10 | jsDelivr CDN |
|
||||
| FullCalendar Polish locale | 6.1.10 | jsDelivr CDN |
|
||||
| jQuery | WP bundled | WordPress core |
|
||||
| Google Calendar API v3 | — | Native HTTP (no SDK) |
|
||||
|
||||
**CDN URLs:**
|
||||
- `https://cdn.jsdelivr.net/npm/fullcalendar@6.1.10/index.global.min.js`
|
||||
- `https://cdn.jsdelivr.net/npm/fullcalendar@6.1.10/index.global.min.css`
|
||||
- `https://cdn.jsdelivr.net/npm/@fullcalendar/core@6.1.10/locales/pl.global.min.js`
|
||||
|
||||
## Plugin Constants
|
||||
|
||||
Defined in `yacht-booking-system.php` (lines 23–27):
|
||||
|
||||
```php
|
||||
YACHT_BOOKING_VERSION = '1.0.0'
|
||||
YACHT_BOOKING_PLUGIN_FILE = __FILE__
|
||||
YACHT_BOOKING_PLUGIN_DIR = plugin_dir_path(__FILE__)
|
||||
YACHT_BOOKING_PLUGIN_URL = plugin_dir_url(__FILE__)
|
||||
YACHT_BOOKING_PLUGIN_BASENAME = plugin_basename(__FILE__)
|
||||
```
|
||||
|
||||
## Autoloading
|
||||
|
||||
Custom `spl_autoload_register` (lines 32–56, `yacht-booking-system.php`):
|
||||
- Namespace prefix: `YachtBooking\`
|
||||
- Maps to: `YACHT_BOOKING_PLUGIN_DIR . 'includes/'`
|
||||
- Rule: `YachtBooking\Foo_Bar` → `includes/class-foo-bar.php`
|
||||
- **Only covers `includes/`** — integration and API classes loaded via explicit `require_once`
|
||||
|
||||
## Configuration Storage
|
||||
|
||||
- No `.env` file — all runtime config in `wp_options`
|
||||
- Key options: `yacht_booking_gcal_credentials`, `yacht_booking_gcal_tokens`, `yacht_booking_gcal_calendar_id`, `yacht_booking_gcal_sync_enabled`, `yacht_booking_default_status`, `yacht_booking_enable_notifications`
|
||||
|
||||
## Build Pipeline
|
||||
|
||||
None. No Composer, no npm, no webpack/vite/esbuild. Assets are static hand-authored files deployed via FTP (`ftp-kr` VS Code extension, config: `.vscode/ftp-kr.json`).
|
||||
|
||||
## Platform Requirements
|
||||
|
||||
- **Dev:** VS Code + ftp-kr, PHP 7.4+ CLI (`php -l <file>` for syntax checks)
|
||||
- **Production:** PHP 7.4+, MySQL, WordPress 6.0+, shared hosting or VPS
|
||||
- **Note:** OAuth redirect URI hardcoded to `https://jachty.pagedev.pl` — staging/local OAuth will fail
|
||||
Reference in New Issue
Block a user