Вычисление TTH (Tiger tree hash)

koreshs

Новичок
PHP:
  /**
   * If PHP version 5.4 or hightest
   * then $php54 = true
   * else $php54 = false
   */
  public static $php54 = true;
Я где-то слышал, что можно как-то и самому определить это, а не заставлять пользователей.

Я уж молчу про composer в 2016 году...
Я тоже слышал, но в PHP языке статического конструктора вроде еще не придумали. а при выполнении функции делать проверку в условии на больше или равенство версии мне кажется накладно.
А тем более делать проверку на то что заведомо и так известно, ну скажем так что в 90% случаях у пользователей уже стоит 5,4 или выше а то может и 95%.
 

Adelf

Administrator
Команда форума
Необязательно заливать, но хотя бы в нужном стиле(PSR-0) оформлять класс не помешало бы.
Че там накладно... одна проверка по числовой константе.
 

koreshs

Новичок
http://php.net/version_compare
PHP:
if(version_compare(PHP_VERSION, '5.4', '<'))
{
  // needs fix
}
Прочитал PHP вначале в этой функции заменяет все запятые точками, потом проставляет между знаками еще лишние точки, потом сортирует по алфавиту значения и если сравнимый операнд ниже то значение TRUE.
Я например запускаю опредиление TTH для папки с 3000 файлами, я не вижу смысла выполнять фукнцию сравнения версий а не просто булевую проверку.
.
В добавок CMS Joomla уже не поддерживает PHP 5.3 и настоятельно рекомендует обновить старые версии CMS и PHP
У меня сайтов с 10 позаражалось вирусами за одну неделю на 5,3. Я восстановил их из бэкапа, обновил версии PHP и уже 9 месяцев ни одного заражения.
При том что сайты зараженные вирусами висят в списке вирусописателей как сайт через который надо рассылать спам. После восстановления они уже специально ломали мои сайты и не получилось.
Вот на C# была плюшка, как статический конструктор. при первом вызове любой статической функции вначале вызывался конструктор и можно было определять в нем статические свойства.
Жаль что тут такого же нет.
 

Adelf

Administrator
Команда форума
Так сделай не статиком. Проблем то.
Но судя по твоим некоторым репликам, нам бесполезно об этом беседовать.
 

koreshs

Новичок
Так сделай не статиком. Проблем то.
Но судя по твоим некоторым репликам, нам бесполезно об этом беседовать.
ОК сделаю не статиком.
PSR-0
Вы предлогаете добавить пространство имен и переименовать класс из TTH в Tth?
 

koreshs

Новичок
Добавил пространство и проверку версии.
У меня такое ощущение сложилось что те кто меня тут убеждал пользуются 5,3 версией
 

Adelf

Administrator
Команда форума
Я пользуюсь седьмой. Вопрос в удобстве пользования твоим классом.
 
Последнее редактирование:

koreshs

Новичок
Необязательно заливать, но хотя бы в нужном стиле(PSR-0) оформлять класс не помешало бы.
Спасибо огромное, я давно хотел найти стандарт оформления PHP, но почему то ни кто об этом ни любит упоминать и использовать, наверно кроме тех кто учавствовал в принятии этих правил.
 

Adelf

Administrator
Команда форума
Тоже самое.

Там в комментах:
PSR-0 или PSR-4
PSR-0 работает для пакетов, которые не используют неймспейсы
PSR-4 работает только с неймспейсами + первый уровень должен быть вендор.
 

koreshs

Новичок
Обновил репозиторий, теперь можно дополнительно вычислять хэш для всей папки и ее файлов.
TTH всех файлов и хэш имен папок складывается в строку и вычисляется общий Tiger хэш.
Особенность в том что если в папке появиться новая пустая подпапка то хэш не измениться.
 

Adelf

Administrator
Команда форума
@koreshs, давай допустим, что мне понравился функционал этой библиотеки и я его хочу использовать в своем проекте. Как?
 
Сверху