denx-b/bitrix-blank

bitrix blank 模板

安装: 9

依赖: 0

建议者: 0

安全: 0

星标: 28

关注者: 7

分支: 20

开放问题: 0

类型:bitrix-module

dev-master 2024-09-28 13:07 UTC

This package is auto-updated.

Last update: 2024-09-28 13:07:43 UTC


README

此模板是1С-Битри克斯项目文件结构化的好例子。

我们团队在实施按照PSR-4自动加载自定义类以及使用该仓库中描述的结构和原则之后,工作效率显著提高。

在仓库中可以找到的团队关键约定

  1. 类自动加载
  2. 事件处理器实现从init.php中分离出来
  3. 网站模板示例
  4. API

除此之外,所有开发者都根据PSR-12规范对代码进行风格化,并在必要时使用该规范进行PhpStorm的自动格式化。

模板

包含一个网站模板,带有标准header和footer.php示例,其中使用了常用的方法:处理语言文件、连接样式、脚本等。

<?php

if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) {
    die();
}

/** @global $APPLICATION */

use Bitrix\Main\Localization\Loc;
use Bitrix\Main\Page\Asset;

Loc::loadMessages(__FILE__);

Asset::getInstance()->addJs(SITE_TEMPLATE_PATH . '/js/script.js');

Asset::getInstance()->addString('<link rel="icon" type="image/x-icon" href="' . SITE_TEMPLATE_PATH . '/favicon.ico"/>');
Asset::getInstance()->addString('<meta name="viewport" content="width=device-width, initial-scale=1">');
?><!doctype html>
<html xml:lang="<?php echo LANGUAGE_ID ?>" lang="<?php echo LANGUAGE_ID ?>">
<head>
    <title><?php echo $APPLICATION->ShowTitle() ?></title>
    <?php $APPLICATION->ShowHead(); ?>
</head>
<body>
<div id="panel"><?php $APPLICATION->ShowPanel() ?></div>

API

使用内置的类自动加载和实现的API机制,可以轻松添加自己的方法。

class ApiFactory implements ApiFactoryInterface
{
    public static function create(string $method = ''): Api
    {
        try {
            switch ($method) {
                case 'news':
                    $api = new Methods\News();
                    break;

                case 'newsDetail':
                    $api = new Methods\NewsDetail();
                    break;

                default:
                    $api = new Methods\Unknown();
            }

            $api->init();

上述示例将可用在以下地址

/api/news
/api/newsDetail

每个方法对应于 /local/php_interface/include/classes/Api/Methods 目录中的类

classes
├── Agents
├── Api
│   │
│   ├── Methods
│   │   ├── News.php       <-- /api/news
│   │   ├── NewsDetail.php <-- /api/newsDetail
│   │   └── Unknown.php    <-- /api/всё_что_угодно
│   │
│   ├── Api.php
│   ├── ApiFactory.php
│   └── ApiFactoryInterface.php
│   │
├── Events
├── Model
│   └── Helper.php
│
└── eventHandlers
    ├── common.php
    └── sale.php

├── autoload.php
├── bootstrap.php
├── composer.json
└── settings.php