Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

composer

8 views
Skip to first unread message

Oleg Redut

unread,
Oct 21, 2017, 9:34:59 AM10/21/17
to
Доброе (current) время суток, All!

А что, есть тут кто? А то даже про фреймфорки перестали мессаги появляться.
Хотелось бы сабж обсудить. А то что-то непонятки у меня.

Что я могу еще сказать?..
Oleg

... AKA oleg(&)redut.info AKA ICQ 28852595

Anton Poletayev

unread,
Oct 22, 2017, 9:14:59 AM10/22/17
to
Hi, Oleg!

Суббота 21 Октября 2017 20:18, ты писал(а) All, в сообщении по ссылке
area://ru.php?msgid=2:5000/111+59eb4947:

OR> А что, есть тут кто?

Как ни странно, но есть.

OR> А то даже про фреймфорки перестали мессаги появляться.

Hе мы такие, жизнь такая.

OR> Хотелось бы сабж обсудить. А то что-то непонятки у меня.

А давай обсудим!

Roman Danilov

unread,
Oct 22, 2017, 3:45:00 PM10/22/17
to
Привет, Oleg!

Ответ на сообщение Oleg Redut (2:5000/111) к All, написанное 21 окт 17 в
20:18:

OR> Доброе (current) время суток, All!
Доброе и тебе!

OR> А что, есть тут кто? А то даже про фреймфорки перестали мессаги
О, не зря я подписался! Тут, оказывается, жизнь.

OR> появляться. Хотелось бы сабж обсудить. А то что-то непонятки у меня.
Composer -- такая штука, с помощью которой ты можешь поставить экземплярчик
Zend Framework 2 или 3, к примеру.

OR> Что я могу еще сказать?..
Скажи мне вот что. Есть интерес перебороть своё влечение к музейному PHP 5.2 и
окунуться в современность. Я не ошибся адресом?

С уважением - Roman

Oleg Redut

unread,
Oct 23, 2017, 3:14:59 AM10/23/17
to
Доброе (current) время суток, Roman!

RD> Composer -- такая штука, с помощью которой ты можешь поставить
RD> экземплярчик Zend Framework 2 или 3, к примеру.

Во всех сообщениях, где упоминается про Composer, сообщается, что это
афигительная штука для управления пакетами. Как его установить и как скачать
тот или иной пакет, воспользовавшись им. Или что это менеджер зависимостей для
интерпретатора языка PHP.
Но у меня сугубо утилитарный интерес.

RD> Скажи мне вот что. Есть интерес перебороть своё влечение к музейному
RD> PHP 5.2 и окунуться в современность. Я не ошибся адресом?

К сожалению, я практик, и любую теорию стараюсь как можно быстрее
приспособить к практическим решениям.
Вот у меня возник интерес написать бота к Telegram для подключения к
блокчейну (тут параллельно эха есть). По ключевым словам Яша выкатывает хучу
всего, в том числе и инфу про простейшего бота на php.
https://golos.io/ru--golos/@tristamoff/podklyuchaem-bota-telegram-k-blokcheinu-urok-2
С примерами.
Читаем, начинаем создавать, скачиваем, закидываем на хостинг, тестируем. Ни
фига. Вчитываемся в исходник и опаньки. А это откуда?
/require('vendor/autoload.php');/
Ни слова, что простейшему скприту надо что-то инклюдать.

Мля, начинаем снова рыть по ключевым словам vendor/autoload и так выходим
на сабж.
Оказывается в статье ни словом не сказано о необходимости библиотеки WebSocket,
да и о том, что её возможно установить только с помощью сабжа. Начинаем рыть
дальше и выясняется, что сабж ставиться только локально. На виндовс, линух. Но
локально. Что за фигня?
Ладно. Не такой я и тёмный, как может показаться. Пропускаю описание
процесса установки сабжа на линух и загрузки библиотек.
Обнаружил в итоге я каталог VENDOR, который я положил под бок скрипту, в
котором были и
telegram\gc\vendor\telegram-bot\api\src
и даже
telegram\gc\vendor\devristo\phpws\src\Devristo\Phpws\Client
в gc у меня лежит сам bot.php, который и рекуирит vendor/autoload.php.
Ан нет, так и не фига. Не цепляет. Опять лезу в яндекс. И обнаруживаю новую
комбинацию буковок:
=== Вырезка из филе Windows Clipboard ===
<?php
include('vendor/autoload.php'); //Подключаем библиотеку
use Telegram\Bot\Api;
=== Кончилась врезка ===
Мля? Что за Use? откуда это в PHP? Или таки я совсем тёмный?
Или composer - это интепретатор для интерперетатора? Тем более что ещё где-то
вычитал, что надо composer устанавливать как alias для php. То есть скрипты php
будут сначала через него пропускаться?

Опять же, на хостинге я не могу установить сабж. Я считал, что он нужен для
удобства скачивания библиотек. А мне надо всего-то подключить работу с
сокетами.
Куда не ткнись:

=== Вырезка из филе Windows Clipboard ===
Она называется PHP Telegram Bot API.
Для установки библиотеки используем Composer:
=== Кончилась врезка ===

=== Вырезка из филе Windows Clipboard ===
как правильно подключить библиотеку #через# Composer
=== Кончилась врезка ===



Что я могу еще сказать?..

Oleg Redut

unread,
Oct 23, 2017, 3:35:00 AM10/23/17
to
Доброе (current) время суток, Roman!

OR> где-то вычитал, что надо composer устанавливать как alias для php. То

Вот собственно

=== Вырезка из https://webhost1.ru/help/generic/composer ===
Создайте алиасы, необходимые для запуска Composer из любой папки в консоли
=== Кончилась врезка ===

А накуа мне его запускать из консоли? Я его локально запустил, библиотеки
скачал, на хостинг по ftp закинул, скрипт в Cpanel парвлю. Зачем мне его там
устанавливать?

И что за пути такие?
vendor\#devristo\phpws#\src\_Devristo\Phpws_\Client
И всё замусорено скрытыми каталогами и всякими
.gitignore .travis.yml CHANGELOG.md composer.json LICENSE phpunit.xml.dist
README.md


Опять же

=== Вырезка из филе Windows Clipboard ===
спасибо @peterz за подсказку, я для себя на PHP выкрутился так: взял
textalk/websocket,
=== Кончилась врезка ===
Иду на https://packagist.org/packages/textalk/websocket

=== Вырезка из филе Windows Clipboard ===
This package mainly contains a WebSocket client for PHP.
[...]
Installing
Preferred way to install is with Composer.
[...]
Client usage:

require('vendor/autoload.php');

/use WebSocket\Client;/

$client = new Client("ws://echo.websocket.org/");
$client->send("Hello WebSocket.org!");

echo $client->receive(); // Will output 'Hello WebSocket.org!'
=== Кончилась врезка ===

ТЬфу.

Хочется чего-нибудь более консервативного.

Anton Poletayev

unread,
Oct 23, 2017, 8:54:59 PM10/23/17
to
Hi, Oleg!

Понедельник 23 Октября 2017 14:13, ты писал(а) Roman Danilov, в сообщении по
ссылке area://ru.php?msgid=2:5000/111+59ed968c:

OR> А накуа мне его запускать из консоли? Я его локально запустил,
OR> библиотеки скачал, на хостинг по ftp закинул, скрипт в Cpanel парвлю.
OR> Зачем мне его там устанавливать?

Hа хостинге можно не устанавливать и таскать целиком вместе с приложением. Hо
делать так HЕ стоит.

Развертыванию через ftp отказать с негодованием - это изнасилование времени,
совершаемое с особой жестокостью.

Для развертывания/обновления проды существуют либо специализированные
деплой-инструменты, либо тот же git.
Достаточно склонировать приложение и потом выполнить composer install, чтобы
подтянуть пакеты.

У серьезного приложения папка vendor влёгкую может весить 50 мегабайт и более,
Таскать её ради обновления пакетов грустно, медленно и не нужно, ведь есть
composer.

Ровно по тем же принципам живет жабоскриптовый пакетный менеджер npm.
Тащить его node_modules ради перекомпиляции ассетов SASS/CSS/JS еще накладнее -
оно под сотню весит и содержит нечеловеческое количество файлов, по фтп
переливать умрёшь.

OR> И что за пути такие?
OR> vendor\#devristo\phpws#\src\_Devristo\Phpws_\Client
OR> И всё замусорено скрытыми каталогами и всякими
OR> .gitignore .travis.yml CHANGELOG.md composer.json LICENSE
OR> phpunit.xml.dist README.md

Это осколки серьезных инструментов, каждый по своему важен и прекрасен. Изучи
их назначение и вопросы отпадут.

OR> Хочется чего-нибудь более консервативного.

Куда уж более консервативно? Люди уже более пяти лет вовсю этим пользуются. А 5
лет в нашей отрасли это эпоха.

Один раз проинклюдить центральный лоадер (это если ты совсем без фреймворка
живешь, т.к. скорее всего он это уже за тебя сделал)
и дальше пользуйся классами через неймспейсы и радуйся жизни.
Hикакого мозгоклюйства с кучей инклюдов, путей, отслеживанием и обновлениями
версий, установкой и удалением.
Можно писать свои пакеты, как публичные, так и частные.

Anton Poletayev

unread,
Oct 23, 2017, 8:54:59 PM10/23/17
to
Hi, Oleg!

Понедельник 23 Октября 2017 12:36, ты писал(а) Roman Danilov, в сообщении по
ссылке area://ru.php?msgid=2:5000/111+59ed8fce:

RD>> Composer -- такая штука, с помощью которой ты можешь поставить
RD>> экземплярчик Zend Framework 2 или 3, к примеру.

И фреймворки.
И пакеты к ним.
И даже framework angostiс пакеты, как, например широкоизвестный nesbot/carbon

OR> Во всех сообщениях, где упоминается про Composer, сообщается, что
OR> это афигительная штука для управления пакетами.

Да, он могуч. С его помощью выполняется и установка, и удаление
и автоматическое отслеживание зависимостей и даже конфигурировать код
приложения при установке пакетов можно (как в Ларавеле сделано).

OR> Как его установить и
OR> как скачать тот или иной пакет, воспользовавшись им. Или что это
OR> менеджер зависимостей для интерпретатора языка PHP.
OR> Hо у меня сугубо утилитарный интерес.

RD>> Скажи мне вот что. Есть интерес перебороть своё влечение к
RD>> музейному PHP 5.2 и окунуться в современность. Я не ошибся
RD>> адресом?

php 5.2 и современный пых это собачья будка по сравнению с космической
станцией.

OR> К сожалению, я практик, и любую теорию стараюсь как можно быстрее
OR> приспособить к практическим решениям.
OR> Вот у меня возник интерес написать бота к Telegram для подключения
OR> к блокчейну (тут параллельно эха есть).

Два смузи этому стартаперу, пилящему пет-проект на хайпе!

OR> По ключевым словам Яша
OR> выкатывает хучу всего, в том числе и инфу про простейшего бота на php.
OR> https://golos.io/ru--golos/@tristamoff/podklyuchaem-bota-telegram-k-bl
OR> okcheinu-urok-2 С примерами.
OR> Читаем, начинаем создавать, скачиваем, закидываем на хостинг,
OR> тестируем. Hи фига. Вчитываемся в исходник и опаньки. А это откуда?
OR> /require('vendor/autoload.php');/
OR> Hи слова, что простейшему скприту надо что-то инклюдать.

И действительно не надо. Только 1 раз - центральный загрузчик.

OR> === Вырезка из филе Windows Clipboard ===
OR> <?php
OR> include('vendor/autoload.php'); //Подключаем библиотеку
OR> use Telegram\Bot\Api;
OR> === Кончилась врезка ===
OR> Мля? Что за Use? откуда это в PHP? Или таки я совсем тёмный?

Это импорт в пространстве имен.

OR> Или composer - это интепретатор для интерперетатора?

Hет. Погладь вот этого манула:
http://php.net/manual/en/language.namespaces.php

OR> Тем более что ещё
OR> где-то вычитал, что надо composer устанавливать как alias для php. То
OR> есть скрипты php будут сначала через него пропускаться?

Hет. Это не более, чем автоматическое средство для генерации скрипта сборки
библиотек в кучу по неким правилам (кучей инклюдов).
Там нет никакой магии и тем более парсинга.

OR> Опять же, на хостинге я не могу установить сабж.

Хостингу без ssh отказать однозначно. Мы не в каменном веке живем.

OR> Я считал, что он нужен для удобства скачивания библиотек. А мне надо
OR> всего-то подключить работу с сокетами.
OR> Куда не ткнись:
OR> Для установки библиотеки используем Composer:

Потому что это удобно.

Oleg Redut

unread,
Oct 23, 2017, 9:54:59 PM10/23/17
to
Доброе (current) время суток, Anton!

AP> Hа хостинге можно не устанавливать и таскать целиком вместе с
AP> приложением. Hо делать так HЕ стоит.

AP> Развертыванию через ftp отказать с негодованием - это изнасилование
AP> времени, совершаемое с особой жестокостью.

ssh есть на хостинге. Но пара библиотек, которые мне понадобились для
праздного любопытства, а не для серьёзного проекта можно залить и по ftp. А
composer, как я писал, установлен локально и благополучно работает. А вот
библиотеки не подключаются.

Parse error: syntax error, unexpected 'use' (T_USE) in
/home/tuder/public_html/telegram/gc/functions.php on line 84

Или не образуется то самое пространство имён. Случайно composer не прописывает
абсолютные пути для инклюдов в библиотеках? Что-то я не глянул.

Anton Poletayev

unread,
Oct 24, 2017, 5:24:59 PM10/24/17
to
Hi, Oleg!

Вторник 24 Октября 2017 08:37, ты писал(а) мне, в сообщении по ссылке
area://ru.php?msgid=2:5000/111+59ee9a3a:

OR> ssh есть на хостинге. Hо пара библиотек, которые мне понадобились
OR> для праздного любопытства, а не для серьёзного проекта можно залить и
OR> по ftp. А composer, как я писал, установлен локально и благополучно
OR> работает. А вот библиотеки не подключаются.

OR> Parse error: syntax error, unexpected 'use' (T_USE) in
OR> /home/tuder/public_html/telegram/gc/functions.php on line 84

Я не вижу код, но line 84 наталкивает на мысль о том, что use расположен где-то
кроме начала, где ему положено быть.

OR> Случайно composer не
OR> прописывает абсолютные пути для инклюдов в библиотеках? Что-то я не
OR> глянул.

Hет, он всегда конструирует пути через __DIR__.

Oleg Redut

unread,
Oct 25, 2017, 12:35:00 AM10/25/17
to
Доброе (current) время суток, Anton!

OR>> Parse error: syntax error, unexpected 'use' (T_USE) in
OR>> /home/tuder/public_html/telegram/gc/functions.php on line 84

AP> Я не вижу код, но line 84 наталкивает на мысль о том, что use
AP> расположен где-то кроме начала, где ему положено быть.

=== Вырезка из филе bot.php ===
<?php
//задаём наш токен, полученный при создании бота и указываем путь к API
телеграма
define('BOT_TOKEN', '389260357:EAA5b7EMUf6HWv14OR6RDr-_Sk90Xv-9Iq0');
define('API_URL', 'https://api.telegram.org/bot' . BOT_TOKEN . '/');

include_once './functions.php';

//принимаем запрос от бота(то что напишет в чате пользователь)
$content = file_get_contents('php://input');
//превращаем из json в массив
$update = json_decode($content, TRUE);
//получаем id чата
$chat_id = $update['message']['chat']['id'];

//получаем текст запроса
$text = $update['message']['text'];

//обработка запроса
getUserRequest($text, $chat_id);

?>

=== Кончилась врезка ===

Тут я убрал все отладочные выводы, так что номер строки с use не совпадает.
Но если убрать строку с use, то выдаётся
Fatal error: Class 'Client' not found in
/home/tuder/public_html/telegram/gc/functions.php on line 89

Собственно в примере не было use. Нашёл аналогчиный пример, где use сразу
после инклюда вендора. Подставил. Не помогло. :-\

=== Вырезка из филе functions.php ===
<?php
function getUserRequest($text, $chat_id) {
/*
$resp = commIsHello($text);
if (!empty($resp)) {
$resp['chat_id'] = $chat_id;
requestToTelegram($resp);
return TRUE;
}
*/

$resp = commIsUser($text);
if (!empty($resp)) {

$resp['chat_id'] = $chat_id;

requestToTelegram($resp);
return TRUE;
}
}
//проверка на ник
function commIsUser($text) {
$text = trim($text);//обрезаем пробелы в начале и в конце

$space = strpos($text, ' ');

if (($space === FALSE) && (mb_substr($text, 0, 1) == '@')) {
//возможно это ник пользователя
//подключаемся к блокчейну

_require('vendor/autoload.php');_
#use WebSocket/Client;#

$client = new Client("wss://ws.golos.io/");
$req = json_encode(
[
'id' => 1, 'method' => 'get_accounts', 'params' => [[mb_substr($text,
'id' => 1)]]
]
);
$client->send($req);
$golos_resp = $client->receive();

$resp_object = json_decode($golos_resp);

if (!empty($resp_object->result)) {
$obj = $resp_object->result[0];
$user = array();
$user[] = 'ID: ' . $obj->id;
$user[] = 'Логин: ' . $obj->name;
$user[] = 'Аккаунт создан: ' . $obj->created;
$user[] = 'Последний раз голосовал: ' . $obj->last_vote_time;
$user[] = 'Создано постов: ' . $obj->post_count;

//расчёт репутации
$reputation = $obj->reputation;
$user[] = 'Репутация: ' . round((max(log10(abs($reputation)) - 9,0) *
(($reputation

>= 0) ? 1 : -1) * 9 + 25), 3);

$json_metadata = json_decode($obj->json_metadata);
if (!empty($json_metadata->user_image)) {
//фото
// передавать не буду, так как у некоторых логинов "заколдованные"
аватары и сообщение в телеграм не приходит
// $user[] = 'Аватар: ' . $json_metadata->user_image;
}
$text = implode("\n", $user);

$data = array(
'text' => $text,
'parse_mode' => 'Markdown',
);
}
else {
$data = array(
'text' => 'Пользователь не найден.',
);
}
$client->close();

if (!empty($data)) {
return $data;
}
}
return NULL;
}

//отправка запроса в чат
function requestToTelegram($data, $type = 'sendMessage') {
if( $curl = curl_init() ) {
curl_setopt($curl, CURLOPT_URL, API_URL . $type);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_exec($curl);
curl_close($curl);
}
}

?>

=== Кончилась врезка ===

Anton Poletayev

unread,
Oct 25, 2017, 4:04:59 AM10/25/17
to
Hi, Oleg!

Среда 25 Октября 2017 11:00, ты писал(а) мне, в сообщении по ссылке
area://ru.php?msgid=2:5000/111+59f010b8:

OR>>> Parse error: syntax error, unexpected 'use' (T_USE) in
OR>>> /home/tuder/public_html/telegram/gc/functions.php on line 84

AP>> Я не вижу код, но line 84 наталкивает на мысль о том, что use
AP>> расположен где-то кроме начала, где ему положено быть.

OR> Собственно в примере не было use. Hашёл аналогчиный пример, где
OR> use сразу после инклюда вендора. Подставил. Hе помогло. :-\

А должно было помочь?

Изучайте
0. Основы ООП
1. Прочитайте документацию http://php.net/manual/en/language.namespaces.php/
2. Посмотрите код любого приложения на современном фреймворке.

Вот, к примеру, класс из приложения на Laravel:
============
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use App\Traits\SortableModel;

class Attachment extends Model
{
use SortableModel;

protected $fillable = [
// ...
];

// ...

public function report()
{
return $this->belongsTo('App\Report');
}

// ...
}
=============

Видите, сначала определяем пространство имен текущего класса, потом ДЕКЛАРИРУЕМ
импорт того, что нам ВОЗМОЖHО потребуется.
И только потом следует определение класса (или код).

Импорт через use определяется строго в начале файла, а не посередине кучи
макаронного legacy-кода.
О чем иностранным языком и сообщает парсер в тексте ошибки.

К слову, декларировать импорт нужно только для того, чтобы не писать длинные
пути до класса при каждом вызове.
Если у вас единичный вызов, можно и без него (но это не очень хороший стиль).

Oleg Redut

unread,
Oct 25, 2017, 6:24:59 AM10/25/17
to
Доброе (current) время суток, Anton!

AP> Изучайте
AP> 0. Основы ООП
AP> 1. Прочитайте документацию
AP> http://php.net/manual/en/language.namespaces.php/

В английском не на столько компетентен, чтобы чиать мануалы.

AP> 2. Посмотрите код любого приложения на современном фреймворке.

Увы мне. В моём возрасте, думаю, осваивать поздно, а большей частью
некогда.
Но вот я сугубый, как говорил, практик. Если есть что-то движущееся, то по
подобию могу создать своё. Если же запущу чужое, а оно у меня не взлетит, то и
своё запустить значительно проблематичнее.

Anton Poletayev

unread,
Oct 25, 2017, 10:04:59 AM10/25/17
to
Hi, Oleg!

Среда 25 Октября 2017 16:58, ты писал(а) мне, в сообщении по ссылке
area://ru.php?msgid=2:5000/111+59f06385:

AP>> 1. Прочитайте документацию
AP>> http://php.net/manual/en/language.namespaces.php/
OR> В английском не на столько компетентен, чтобы чиать мануалы.

Меняем две буковки в URL и, о чудо, документация становится понятнее на 146%:
http://php.net/manual/ru/language.namespaces.php/

Такой трюк можно проделать с любой статьей этого мануала.

AP>> 2. Посмотрите код любого приложения на современном фреймворке.

OR> Увы мне. В моём возрасте, думаю, осваивать поздно, а большей
OR> частью некогда. Hо вот я сугубый, как говорил, практик. Если есть
OR> что-то движущееся, то по подобию могу создать своё. Если же запущу
OR> чужое, а оно у меня не взлетит, то и своё запустить значительно
OR> проблематичнее.

"Anyone who stops learning is old, whether at twenty or eighty. Anyone who
keeps learning stays young." (с) Henry Ford

Oleg Redut

unread,
Oct 26, 2017, 6:14:59 AM10/26/17
to
Доброе (current) время суток, Anton!

OR>> Собственно в примере не было use. Hашёл аналогчиный пример,
OR>> где use сразу после инклюда вендора. Подставил. Hе помогло. :-\

AP> А должно было помочь?

Взял другую библиотеку: textalk\websocket, скомпозирил её, залил и без
проблем подключилась. И небольшая. Предыдущую удалял - 650 файлов с 180
каталогах. Она ещё и zend цепляла и ещё что-то...
Уже и бот в телеграме отвечает, инфу выдаёт. :-)

AP> Изучайте
AP> 0. Основы ООП
AP> 1. Прочитайте документацию

Anton Poletayev

unread,
Oct 28, 2017, 8:25:00 AM10/28/17
to
Hi, Oleg!

Четверг 26 Октября 2017 14:48, ты писал(а) мне, в сообщении по ссылке
area://ru.php?msgid=2:5000/111+59f1ae1d:

OR> Взял другую библиотеку: textalk\websocket, скомпозирил её, залил и
OR> без проблем подключилась. И небольшая. Предыдущую удалял - 650 файлов
OR> с 180 каталогах. Она ещё и zend цепляла и ещё что-то...
OR> Уже и бот в телеграме отвечает, инфу выдаёт. :-)

Всё правильно, пакеты надо выбирать с умом и смотреть, что они за собой тянут.
Главное, что дает композер - это возможность, не заморачиваясь на установку и
подключение, их безболезненно тасовать.

Oleg Redut

unread,
Oct 28, 2017, 10:15:00 PM10/28/17
to
Доброе (current) время суток, Anton!

OR>> Уже и бот в телеграме отвечает, инфу выдаёт. :-)

AP> Всё правильно, пакеты надо выбирать с умом и смотреть, что они за
AP> собой тянут. Главное, что дает композер - это возможность, не
AP> заморачиваясь на установку и подключение, их безболезненно тасовать.

Осталось только научится в блокчейн через api записи делать. Ведь фигня
какая: на питоне это можно делать, на яве - без проблем, а на php, говорят -
функций не придумали.
Ничего не понимаю. Казалось бы, какая разница, чем через сокет запрос
послать.

Anton Poletayev

unread,
Nov 3, 2017, 7:45:00 AM11/3/17
to
Hi, Oleg!

Воскресенье 29 Октября 2017 08:50, ты писал(а) мне, в сообщении по ссылке
area://ru.php?msgid=2:5000/111+59f53489:

OR> Осталось только научится в блокчейн через api записи делать. Ведь
OR> фигня какая: на питоне это можно делать, на яве - без проблем, а на
OR> php, говорят - функций не придумали.
OR> Hичего не понимаю. Казалось бы, какая разница, чем через сокет
OR> запрос послать.

Если есть некое api, с ним можно работать откуда угодно. И уж, тем более, из
php.
Можно глянуть на спецификацию api?

Oleg Redut

unread,
Nov 5, 2017, 6:15:00 AM11/5/17
to
Доброе (current) время суток, Anton!

OR>> Hичего не понимаю. Казалось бы, какая разница, чем через
OR>> сокет запрос послать.

AP> Если есть некое api, с ним можно работать откуда угодно. И уж, тем
AP> более, из php. Можно глянуть на спецификацию api?

Да вот малость документировано только get_, а set_ отсутствует. :-(
https://golos.io/ru--otkrytyij-kod/@asuleymanov/opisanie-api-golos-chast-1
https://wiki.golos.io/3-guides/stati/api-golos-ch1.html
http://golostools.ru/explorer/

https://api.golos.cf/

Oleg Redut

unread,
Nov 9, 2017, 7:15:00 AM11/9/17
to
Доброе (current) время суток, Anton!

AP>> тем более, из php. Можно глянуть на спецификацию api?

[...]

OR> https://api.golos.cf/

Идей не возникло или мало информации?

Anton Poletayev

unread,
Nov 9, 2017, 8:24:59 AM11/9/17
to
Hi, Oleg!

Четверг 09 Hоября 2017 18:53, ты писал(а) мне, в сообщении по ссылке
area://ru.php?msgid=2:5000/111+5a0441e5:

AP>>> тем более, из php. Можно глянуть на спецификацию api?

OR> [...]

OR>> https://api.golos.cf/

OR> Идей не возникло или мало информации?

Обычный curl + json + вагон времени и терпения :)

Oleg Redut

unread,
Nov 9, 2017, 9:35:00 PM11/9/17
to
Доброе (current) время суток, Anton!

AP>>>> тем более, из php. Можно глянуть на спецификацию api?

OR>> [...]

OR>>> https://api.golos.cf/

OR>> Идей не возникло или мало информации?

AP> Обычный curl + json + вагон времени и терпения :)

Значит всё-таки можно, только ни у кого не нашлось лишнего вагона. :-(
Буду кропать помаленьку сам.

Mithgol the Webmaster

unread,
Nov 14, 2017, 8:04:59 AM11/14/17
to
Так было 14:13 23 Oct 17 написано от Oleg Redut к Roman Danilov:

OR> И всё замусорено скрытыми каталогами и всякими
OR> .gitignore .travis.yml CHANGELOG.md composer.json LICENSE
OR> phpunit.xml.dist
OR> README.md

Думаю, что это не мусор: каждый из этих файлов реально полезен.

Файл .gitignore избавляет Git-хранилище (и, в частности, GitHub) от хранения
файлов, которые автор считает *реальным* мусором (например, отладочные выводы
какие-нибудь, или кэши, или ещё в этом же роде что-нибудь). В этом файле мусор
перечисляется поимённо (или не вполне поимённо, а через звёздочку на месте
переменной части имени).

Файл .travis.yml хранит те настройки, с которыми на сервере
https://travis-ci.org/ автозапускается тестирование кода пакета. Они содержат,
по меньшей мере, указание тестируемого языка (PHP) ── ещё там возможна
донастройка параметров вызова используемого средства отладки (PHPUnit),
но только если автор пакета не был доволен теми настройками, с какими Travis CI
сам по умолчанию запускает PHPUnit (эти настройки для удобства по адресу
https://docs.travis-ci.com/user/languages/php/#Default-Build-Script
перечислены).

Файл CHANGELOG.md хранит список изменений кода пакета от версии к версии.
Это одно из тех мест, в которые надо в первую очередь заглядывать при переходе
на новую версию пакета, особенно если до перехода заглянуть не удалось, а после
перехода что-нибудь оказалось неожиданным или ведёт себя не так, как прежде.

Файл composer.json содержит, по-видимому, настройки для правильной работы
Composer.

Файл LICENSE необходим открытому коду для того, чтобы вполне явствовало,
под какой лицензией он открыт: иногда открытость открытости рознь.

Файл README.md содержит описание пакета.

Файл phpunit.xml.dist, как это на странице
https://phpunit.de/manual/current/en/organizing-tests.html сказано
в последнем разделе, используется для хранения настроек PHPUnit
(средство PHPUnit используется для тестирования PHP-кода).


Фидонет будет великим и гипертекстовым! [Ru.Mozilla] http://Mithgol.Ru/
Mithgol the Webmaster. [Братство Нод] [Team А я меняю subj]

... Q: Why did the Cyclops stop teaching? A: He only had one pupil.

Anton Poletayev

unread,
Nov 16, 2017, 6:05:00 AM11/16/17
to
Hi, Mithgol!

Вторник 14 Hоября 2017 01:00, ты писал(а) Oleg Redut, в сообщении по ссылке
area://ru.php?msgid=2:50/88+5a0a1639:

MW> Файл composer.json содержит, по-видимому, настройки для правильной
MW> работы Composer.

Уточнение:
composer.json - список зависимостей пакетов и их версий, здесь вы определяете,
пакеты каких версий вы допускаете к использованию.
composer.lock - список конкретных версий, которые были установлены и под
которые велось тестирование. Это позволяет быть уверенным, что каждый, кто
работает над вашим проектом будет иметь абсолютно одинаковые версии пакетов.

Пример:
Если у вас в composer.json указана версия пакета 1.*, вы выполняете composer
update и получаете пакет версии 1.2, затем коммитите изменения.
Через некоторое время, вы или коллега устанавливаете проект в другом месте,
используя composer install и получаете пакет именно версии 1.2, как это
сохранено в composer.lock
Если же вы выполните composer update, то получите пакет 1.3, для которого
тестирование не проводилось.

При этом, так как рамки версий заданы в composer.json, то, выполняя composer
update, вы не получите версию 2.0, даже если она на этот момент уже вышла.

0 new messages