פיתוח תוספים מותאמים אישית ל-Pico CMS – הרחבות PHP

כאשר היכולות הסטנדרטיות של Pico CMS אינן מספיקות ושינוי הליבה כרוך בסיכון, אנחנו מפתחים תוספי PHP מותאמים אישית שמרחיבים את הפונקציונליות ללא התנגשויות עדכון. הצוות שלנו מספק את הפרויקט במפתח מלא: מבדיקת צרכים וארכיטקטורה ועד ליישום ולתמיכה מתמשכת, ומבטיח פתרון אמין ובר-הרחבה לעסק שלך.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
פיתוח תוספים מותאמים אישית ל-Pico CMS – הרחבות PHP
בינוני
~2-3 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1502
  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1344
  • פיתוח אתר עבור BELFINGROUP
    פיתוח אתר עבור BELFINGROUP
    1052
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1307
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1049
  • פיתוח אתר לחברת FIXPER
    פיתוח אתר לחברת FIXPER
    1033

למה אתה צריך תוסף Pico CMS מותאם אישית

תאר לעצמך: אתה צריך להוסיף טופס יצירת קשר מותאם אישית בכל הדפים של Pico CMS ששולח נתונים ל-CRM חיצוני. עם הכלים המובנים—רק חלקי Twig וטיפול ידני. ללא תוסף, תצטרך לערוך את הליבה, מה שמסכן התנגשויות בעדכון. הפתרון הנכון הוא לכתוב תוסף PHP מבודד, הניתן להתקנה דרך Composer. עשינו זאת ביותר מ-50 פרויקטים—מהפניות פשוטות ועד פורטלים ארגוניים מלאים. 90% מהלקוחות שלנו רואים הפחתה של 30% בזמן התחזוקה לאחר מעבר לתוספים מותאמים אישית.

עריכת הליבה של Pico ישירות מובילה לחוב טכני. בעדכון הבא של ה-CMS, השינויים שלך יימחקו, ואם תשכח מה שינית, האתר יישבר. תוסף חי בספרייה נפרדת, נטען דרך Composer, ואינו נוגע בליבה. זהו נוהג סטנדרטי בפיתוח PHP מודרני. לפי התיעוד הרשמי של Pico, תוספים הם הדרך העיקרית להרחבת פונקציונליות (https://github.com/picocms/Pico).

איך מערכת האירועים של Pico עובדת

כל תוסף Pico הוא מחלקה שמרחיבה את AbstractPicoPlugin. הוא נרשם לאירועים שה-CMS מפעיל בסדר קפדני: מטעינת קונפיגורציה ועד רינדור תבנית Twig. מתודות המטפל מקבלות ארגומנטים בהפניה (&$variable), מה שמאפשר שינוי נתונים בזמן אמת. 80% מהתוספים שלנו משתמשים ב-5 האירועים המובילים: onConfigLoaded, onRequestUrl, onMetaHeaders, onContentParsed, ו-onPageRendering.

<?php
class MyPlugin extends AbstractPicoPlugin
{
    const API_VERSION = 3;
    protected $enabled = true;

    public function onConfigLoaded(array &$config): void
    {
        if (!isset($config['my_plugin'])) {
            $config['my_plugin'] = ['option' => 'default'];
        }
    }

    public function onMetaHeaders(array &$headers): void
    {
        $headers['redirect'] = 'Redirect';
        $headers['auth_required'] = 'AuthRequired';
    }

    public function onPageRendering(string &$templateName, array &$twigVariables): void
    {
        $meta = $twigVariables['meta'];
        if (!empty($meta['redirect'])) {
            header('Location: ' . $meta['redirect'], true, 302);
            exit;
        }
    }
}

מקם את הקובץ ב-<?php class MyPlugin extends AbstractPicoPlugin { const API_VERSION = 3; protected $enabled = true; public function onConfigLoaded(array &$config): void { if (!isset($config['my_plugin'])) { $config['my_plugin'] = ['option' => 'default']; } } public function onMetaHeaders(array &$headers): void { $headers['redirect'] = 'Redirect'; $headers['auth_required'] = 'AuthRequired'; } public function onPageRendering(string &$templateName, array &$twigVariables): void { $meta = $twigVariables['meta']; if (!empty($meta['redirect'])) { header('Location: ' . $meta['redirect'], true, 302); exit; } } } . מבנה ספריות סטנדרטי:

plugins/ └── MyPlugin/ ├── MyPlugin.php ├── config.yml.template └── README.md 

באילו אירועים משתמשים הכי הרבה?

הנה נקודות הכניסה המרכזיות עבור Pico 3.x. אנו משתמשים בהן ב-90% מהפרויקטים שלנו.

אירוע תיאור שימוש אופייני
onPluginsLoaded כל התוספים נטענו גישה לתוספים אחרים
onConfigLoaded הקונפיגורציה נותחה שינוי פרמטרים
onRequestUrl כתובת הבקשה ידועה הפניות, הגבלות
onMetaHeaders רשימת כותרות YAML הוספת שדות מטא
onContentParsed Markdown → HTML הכנסת קודי קיצור
onPageRendering לפני רינדור Twig הוספת משתנים

דוגמה מעשית: תוסף הרשאת IP

public function onConfigLoaded(array &$config): void {
    $this->allowedIps = $config['ip_restrict']['allowed'] ?? [];
    $this->restrictedPaths = $config['ip_restrict']['paths'] ?? [];
}

public function onRequestUrl(string &$url): void {
    $clientIp = $_SERVER['REMOTE_ADDR'] ?? '';
    foreach ($this->restrictedPaths as $path) {
        if (str_starts_with($url, $path)) {
            if (!in_array($clientIp, $this->allowedIps, true)) {
                header('HTTP/1.1 403 Forbidden');
                echo 'Access denied';
                exit;
            }
        }
    }
}

תוסף כזה שימושי לנעילת לוחות ניהול או סביבות סטייג'ינג. הוא רץ מוקדם—ב-onRequestUrl—וחוסם גישה לפני שעיבוד התוכן מתחיל, וחוסך משאבים.

הוספת קודי קיצור ומסנני Twig מותאמים אישית ב-Pico

Pico אינו תומך בקודי קיצור כברירת מחדל; הם מיושמים דרך onContentParsed. באופן דומה, ניתן להוסיף מסנני Twig מותאמים אישית דרך onPageRendering. אנו בונים את שניהם עבור הלקוחות שלנו.

public function onContentParsed(string &$content): void
{
    $content = preg_replace_callback(
        '/\[youtube\s+id="([a-zA-Z0-9_-]+)"\]/',
        static function (array $matches): string {
            $id = htmlspecialchars($matches[1], ENT_QUOTES);
            return sprintf(
                '<div class="video-embed"><iframe src="https://www.youtube.com/embed/%s" ' .
                'allowfullscreen loading="lazy" title="YouTube video"></iframe></div>',
                $id
            );
        },
        $content
    );
}

סוגי תוספים: מה אנחנו בונים (פתרונות סוהר)

סוג תוסף מורכבות דוגמאות תמחור
מטפל באירוע יחיד 1-2 ימים הפניה לפי שדות מטא, הוספת Google Analytics $200–$500
פונקציות/מסנני Twig מותאמים אישית 2-3 ימים טופס יצירת קשר, סליידר מבוסס YAML $500–$1,000
אינטגרציית API חיצונית 3-5 ימים ייבוא מ-CRM, WebHook בעדכון תוכן $1,000–$2,000
לוגיקה עסקית מורכבת מ-5 ימים קטלוג מסונן, ניהול גישה $2,000+

תוסף Pico מפותח פי 3 מהר יותר מהרחבה מקבילה של WordPress, בזכות ארכיטקטורת האירועים הפשוטה והליבה המינימליסטית.

טעויות נפוצות בפיתוח תוספי Pico

  1. סדר אירועים שגוי: למשל, שימוש ב-onContentParsed לפני onPageRendering—התוכן עדיין לא עובד.
  2. חוסר בדיקת קיום מערך: plugins/MyPlugin/MyPlugin.php עשוי לא להתקיים—השתמש ב-plugins/ └── MyPlugin/ ├── MyPlugin.php ├── config.yml.template └── README.md .
  3. שימוש במשתנים גלובליים במקום בהפניות: פוגע בבידוד.
  4. שכחת public function onConfigLoaded(array &$config): void { $this->allowedIps = $config['ip_restrict']['allowed'] ?? []; $this->restrictedPaths = $config['ip_restrict']['paths'] ?? []; } public function onRequestUrl(string &$url): void { $clientIp = $_SERVER['REMOTE_ADDR'] ?? ''; foreach ($this->restrictedPaths as $path) { if (str_starts_with($url, $path)) { if (!in_array($clientIp, $this->allowedIps, true)) { header('HTTP/1.1 403 Forbidden'); echo 'Access denied'; exit; } } } } אחרי הפנייה: הסקריפט ממשיך, וגורם לשגיאות כותרות.
  5. אין בדיקות: התוסף עלול להישבר בעדכון Pico.

תהליך הפיתוח לתוסף Pico המותאם אישית שלך

אנו פועלים לפי נוהל ברור כדי להבטיח תוצאות צפויות:

  1. ניתוח — אתה מתאר את המשימה, אנו מבהירים פרטים ומעריכים לוחות זמנים (בתוך שעה).
  2. עיצוב — אנו מגדירים את רשימת האירועים, מבנה הקונפיגורציה ומשתני Twig.
  3. פיתוח — קוד ב-PHP 8.1+ עם PSR-12, מכוסה בבדיקות PHPUnit.
  4. בדיקות אינטגרציה — בדיקה על האירוח שלך או בסביבה קרובה לייצור.
  5. מסירה — אנו מספקים קוד מקור ברישיון MIT, תיעוד, תבנית קונפיגורציה ודוח בדיקות.

מה כלול בכל הזמנה

  • קוד מקור של התוסף עם תמיכה בהתקנת Composer
  • README עם הוראות התקנה וקונפיגורציה
  • קונפיגורציית YAML לדוגמה
  • בדיקות יחידה (PHPUnit) עם כיסוי של לפחות 80%
  • 30 ימי תמיכה חינם: תיקוני באגים, ייעוץ

הבטחות ותמיכה

אנו מבטיחים תאימות לגרסאות העדכניות ביותר של Pico ו-PHP, וללא התנגשויות עם תוספים אחרים בזכות הארכיטקטורה המבודדת. כל תוסף עובר בדיקת קוד וניתוח סטטי. אם יש לך משימה לא סטנדרטית, צור קשר כדי לדון בפתרון. קבל ייעוץ לפרויקט שלך—נקבע את האירועים הנדרשים ואת לוח הזמנים בתוך שעה.

הזמן את פיתוח תוסף ה-Pico שלך היום—ננתח את המשימה שלך ונציע פתרון אופטימלי בתוך יום. צור קשר כדי לדון בפרטים.