Jump to content

Введение в IPS Social Suite 4.0

Featured Replies

Posted
comment_45151

Около года назад было вскользь упомянуто, что следующей версией, после 3.4, будет 4.0. Сейчас разработка 4.0 продолжается, и для новостей разработчики решили использовать блог The Development Channel, чтобы рассказать Вам о развитии продуктов.

Это перевод статьи 4.0 - Dev Introduction, опубликованной в The Development Channel.
Перевод осуществил Sanshalay. Копирование без указания ссылки на IPBMafia.Ru запрещено.

Записи в The Development Channel будут предназначены, в первую очередь, разработчикам различных приложений для продуктов IPS. Из всего того, что будет рассказываться, некоторые вещи могут быть всё ещё в планах, и когда они будут готовы, будет рассказано о них подробнее. Поэтому также стоит иметь в виду, что некоторые планы и сроки могут измениться. В основном, здесь будут размещаться примеры кода, скриншоты и т.д. - но всё это не является готовым продукт, и это, вероятно, будет видно.
 
В добрый путь - давайте поговорим о 4.0!
 
Структура каталогов
 
В настоящее время приложения хранятся в своих папках (это либо /admin/applications, либо /admin/applications_addon/other), однако другие файлы разбросаны по разным каталогам, будь то /interface, /public и т.д. В 4.0 все файлы приложений будут храниться в своей папке, которая будет находиться в директории /application.
 
Каталог приложения будет выглядеть примерно так:

  • extensions
  • dev
    • css
    • html
    • img
    • js
    • lang
  • interface
  • modules
    • admin
    • front (теперь это "front", а не "public")
  • setup
  • sources
  • tasks
  • xml

Обратите внимание на папку /dev. Это не будет средством для разработки, а скорее заменит /cache/lang_cache/master_lang.
 
Вне каталога приложений будут только системные папки, обеспечивающие функционирование базовых классов.

Пространства имён и автоматическая загрузка классов

В 4.0 будут использоваться пространства имён PHP и автозагрузка классов. Функционал лучше всего продемонстрировать на примере:
 
classDb (/ips_kernel/classDb.php) теперь называется IPSDb и расположен в /system/Db/Db.php
output (/admin/sources/classes/output/publicOutput.php) теперь называется IPSOutput и расположен в /system/Output/Output.php
class_forums (/admin/applications/forums/sources/classes/forums/class_forums.php) теперь называется IPSforumsForum и расположен в /applications/forums/sources/Forum/Forum.php
IPSDispatcherFront и IPSDispatcherAdmin - это два новых класса. Их функционал, аналогичен функционалу ipsController в 3.x.

 

"Monkey patching"

Один из плюсов хуков в IPS Social Suite - это то, что Вы можете легко создать свой собственный класс и использовать его вместо основного.
 
Раньше приходилось писать вот так:

$class = IPSLib::loadLibrary( '/path/to/file', 'myClass' );
$object = new $class;

Особенно, если вы хотите сделать статический метод. Однако теперь это можно сделать так:

$object = new myClass;

или так

myClass::myStaticMethod();

Также будет возможным использование Monkey Patch и умного использования автозагрузки. Это привело к отказу от loadLibary и loadActionOverloader.

Это, конечно, только начало. Следите за новостями в данном разделе.

Edited by Sanshalay

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.