2017 © Pedro PelΓ‘ez
 

library php-components

image

o-log/php-components

  • Friday, July 14, 2017
  • by o-log
  • Repository
  • 2 Watchers
  • 0 Stars
  • 23 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 17 Versions
  • 0 % Grown

The README.md

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ страницы - php рСализация

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ - это ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ html (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, шаблон) Π° Ρ‚Π°ΠΊΠΆΠ΅ стили ΠΈ скрипты ΠΎΡ‚ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ части страницы собраны вмСстС ΠΈ Π»Π΅ΠΆΠ°Ρ‚ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅., (*1)

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ:, (*2)

  • Π―Π²Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ описаниС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ выглядит ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.
  • Π˜Π·ΠΎΠ»ΡΡ†ΠΈΡ стилСй. Когда стили ΠΏΠΈΡˆΡƒΡ‚ΡΡ ΠΈ Π»Π΅ΠΆΠ°Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ Π²Ρ‹Π΄Π°Ρ‡ΠΈ (Ρ‚.Π΅. ΠΊΠ°ΠΊ дСлаСтся ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ) - ΠΎΠ½ΠΈ ΠΏΠΈΡˆΡƒΡ‚ΡΡ для Ρ‚ΠΎΠ³ΠΎ контСкста, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ разрабатываСтся. ΠŸΡ€ΠΈ пСрСносС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ контСкст (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ· ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° страницы Π² ΠΏΡ€Π°Π²ΡƒΡŽ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ) стили часто Π»ΠΎΠΌΠ°ΡŽΡ‚ΡΡ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, стили ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° слоТно Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΠ· ΠΎΠ±Ρ‰Π΅ΠΉ каскадной каши. ВынСсСниС стилСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΡΠΊΠΎΡ€Π΅Π½ΠΈΡ‚ΡŒ использованиС контСкста Π² стилях.
  • Π—Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² css-классов. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ css-класс, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΈΡˆΡƒΡ‚ΡΡ всС Π΅Π³ΠΎ стили.
  • Π£ΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ доступа Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΊ стилям ΠΈ скриптам - ΠΎΠ½ΠΈ Π»Π΅ΠΆΠ°Ρ‚ рядом с шаблоном.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ php-класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ доступа ΠΊΠΎ всСму Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Π’.Π΅. этот класс Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ:, (*3)

  • ΠΌΠ΅Ρ‚ΠΎΠ΄ рисования ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ render() ΠΈΠ»ΠΈ html()
  • ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ getCssPath() ΠΈ getJsPath(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΏΡƒΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ css ΠΈ js ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°
  • Π€Π°ΠΉΠ»Ρ‹ css ΠΈ js ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сборщиком Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΠ².

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅

Π‘Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² composer.conf ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ composer., (*4)

ПослС этого ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. НапримСр, создаСм Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ Components/HeaderComponent ΠΈ Π² Π½Π΅Π΅ ΠΊΠ»Π°Π΄Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹:, (*5)

HeaderComponent.php, (*6)

<?php

namespace Components\HeaderComponent;

use OLOG\Component\ComponentTrait;
use OLOG\Component\InterfaceComponent;

class HeaderComponent implements InterfaceComponent
{
    use ComponentTrait;

    static public function render()
    {
        $_component_class = \OLOG\Component\GenerateCSS::getCssClassName(__CLASS__);

        ?>
        <h1 class="<?= $_component_class ?>">PAGE HEADER</h1>
        <?php
    }
}

styles.less, (*7)

._COMPONENT_CLASS {
  font-size: 24px;
  background-color: #eee;
}

scripts.js - пустой, (*8)

ΠŸΠΎΡ‚ΠΎΠΌ Π½Π°Π΄ΠΎ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² сборщикС. ДобавляСм Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Π΄Π΅Π»:, (*9)

$conf['component_classes_arr'] = [
    HeaderComponent::class
];

И Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ сборку JS ΠΈ CSS Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅:, (*10)

$conf[\OLOG\Component\ComponentConstants::MODULE_NAME] = new \OLOG\Component\ComponentConfig(true, true);

ПослС этого ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ сборщик. Π‘Π°ΠΌΡ‹ΠΉ простой Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ выполнСния сборщика - Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² index.php, Ρ‚ΠΎΠ³Π΄Π° Π°Π³Ρ€Π΅Π³Π°Ρ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запросС ΠΊ сайту., (*11)

<?php

require_once '../vendor/autoload.php';

\OLOG\ConfWrapper::assignConfig(\PHPComponentsDemo\ComponentsDemoConfig::get());

\OLOG\Component\GenerateCSS::generateCSS();
\OLOG\Component\GenerateJS::generateJS();

\PHPComponentsDemo\DemoLayout\DemoLayoutComponent::render();

И Π½Π°ΠΊΠΎΠ½Π΅Ρ† ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Π°Π³Ρ€Π΅Π³Π°Ρ‚Ρ‹ Π² шаблонС:, (*12)

<link href="/assets/common.css" rel="stylesheet"/>

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»

Π’Ρ€Π΅ΠΉΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² getCssPath() ΠΈ getJsPath() - ΠΎΠ½ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΏΡƒΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ соотвСтствСнно styles.less ΠΈ scripts.js Π² ΠΏΠ°ΠΏΠΊΠ΅ класса ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Π’.Π΅. Ссли ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ этот Ρ‚Ρ€Π΅ΠΉΡ‚ ΠΊ классу ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° - Π² классС Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π΅Π½Π΄Π΅Ρ€Π°., (*13)

Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ стилСй (ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ класса ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°)

Π’ Ρ„Π°ΠΉΠ»Π΅ стилСй ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ константу _COMPONENT_CLASS - сборщик Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ Π΅Π΅ Π½Π° Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ имя класса ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ срСди всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ имя css класса для ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°., (*14)

Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ имя класса ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° доступно Π² ΠΊΠΎΠ΄Π΅ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Ρ‡Π΅Ρ€Π΅Π· \OLOG\Component\GenerateCSS::getCssClassName(CLASS) (Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ этот класс ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ)., (*15)

Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ экзСмпляра ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°

МоТно ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠ΄Π΅ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Ρ‡Π΅Ρ€Π΅Π· \OLOG\Component\GenerateJS::generateComponentInstanceId()., (*16)

МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для присвоСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ id с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ Π² js., (*17)

The Versions

19/07 2016
13/07 2016

dev-config

dev-config

  Sources   Download

The Requires

 

13/07 2016
28/06 2016
28/06 2016

3.2

3.2.0.0

  Sources   Download

The Requires

 

The Development Requires

02/06 2016

3.1

3.1.0.0

  Sources   Download

The Requires

 

The Development Requires

16/05 2016

3.0

3.0.0.0

  Sources   Download

The Requires

 

The Development Requires

20/04 2016

0.3

0.3.0.0

  Sources   Download

The Requires

 

The Development Requires