Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    mikeevstropov
    @mikeevstropov
    @ishubelko То есть, представим ситуацию: Я разработчик какой-то либы для работы с Curl. Часть методов класса у меня публичные, часть приватные. Я не использую "протектед" методы сознательно, что бы ни кто не мог унаследовать мою библиотеку и расширить ее до нужного функционала, по той причине, что якобы могут появиться какие-то неадекватные issues, по типу - "я переписал методы и теперь это работает не как ожидалось"? Верно?
    Igor
    @ishubelko
    Расширить ето не только унаследовать - декорация, агрегация. Вместо бездумного наследования заведи интерфейс которий удовлетворит требованиям твоего клиентского кода и реализуй его как душе угодно - тогда проблем з зависимостями будет немного меньше
    mikeevstropov
    @mikeevstropov
    @ishubelko По вашему, если мне нужен весь интерфейс библиотеки, мне нужно дублировать все публичные методы в декораторе?
    Igor
    @ishubelko
    я не знаю какой там у вас юз-кейс и что конкретно вас не устраивает, я говорю о том о что хорошой практиктой считаеться завести интерфейс которий удовлетворяет ожиданиям вашего клиентского кода а дальше уже реализуете етот интерфейс так как считаете нужним - нужно проксировать кол к методу либи - проксируете - нужно декорировать - декорируете
    что такое весь интерфейс библиотеки ? может одного класа?
    mikeevstropov
    @mikeevstropov
    @ishubelko Речь не идет о клиентском коде и о моем личном "юзкесе" какой-то либы. Вопрос был про адекватность применения "private" методов в опенсорс библиотеках. Но раз уж вы указали как одну из причин версионирование, тогда еще вопрос. Вы активно используете прилагательное "бездумный". Можно ли его применить к разработчику библиотеки, который будет менять ее интерфейс на минорных версиях и патчах? Потому как других возможных проблем связанных с обновлениями при перезаписи какого-то метода интерфейса не вижу. По вашему последнему вопросу, возникает новый вопрос. Вы не считаете библиотеку таковой, если она содержит всего один класс?
    Igor
    @ishubelko
    без указания юзкейса использования и самой библиотеки я не могу судить о адвекватности или неадекватности
    бил задан вопрос о private в опенсоурсе - мое мнение - ето нормальная практика
    дальше что то обсуждать без конкртеного примера не продуктивно
    mikeevstropov
    @mikeevstropov
    @ishubelko Да бесит просто. Берешь любую популярную либу, все как для людей - наследуй не хочу. А стоит только добавить в зависимости от какого-то Васи Пипсичкина - получаешь геморой. Который раз уже горит от таких умников.
    Igor
    @ishubelko
    не юзайте тогда - если оно вам не подходит
    на счет: менять ее интерфейс на минорных версиях и патчах в том то и дело что интерфей ето публичние методи - остальное детали реализации, они не должни бить доступни и они могут меняться
    mikeevstropov
    @mikeevstropov
    @ishubelko Так про публичные методы и речь. Вы как их расширять собрались, если они вызывают приватные?
    Igor
    @ishubelko
    декорация, агрегация - если есть такая возможность
    если нет OCP принцип
    если поведение метода/функции не подходит под ваш юз-кейс - не нужно в него "впихивать" другую реалицию для того что ето поведение подошло вам, лучше сделать новую реализацию которая вам нужна
    mikeevstropov
    @mikeevstropov
    @ishubelko Для того, что бы ограничивать других в опен либе нужен аргумент. Если этого аругумента нет - это как Вы выражаетесь "бездумный" подход. Я пытался найти хоть один аргумент использовать приватные методы в библиотеках. Пока достойных аргументов не нашел. По поводу декорации и агрегации, еще раз задам вопрос. Мне действительно нужно дублировать интерфейс библиотеки в декораторе, вместо того, что бы его унаследовать, и не плодить кучу бесполезного кода?
    mikeevstropov
    @mikeevstropov
    @ishubelko Прошу прощения, не заметил про "OCP". Почему вы его указали? Он же категорически противоречит присутствие private методов.
    Igor
    @ishubelko
    оо? можно пример?
    mikeevstropov
    @mikeevstropov
    @ishubelko Пример чего? Почему наличие private метода противоречит этому принципу? Даже не знаю... Может потому что там так и написано?
    should be open for extension, but closed for modification
    SanjayJaiswa
    @SanjayJaiswa
    I have one php code and need to run it argent please can anyone help
    Renato Marinho
    @renatomarinho
    This message was deleted
    Evgeny
    @tensor146

    Привет. Помогайте, а то сойду с ума.

    $some = $this->getContext() ? $this->getContext()->normalize() : NULL;

    Вываливается "Call to a member function normalize() on null"

    При этом $this->getContext() это

    public function getContext() {
        return $this->context;
      }
    О_о
    Denis Mazur
    @lans8097
    Привет всем. вообще занимаюсь Laravel, но попросили сделать правки на OpenCart сборка OcStore 2.2.
    Я в магию не верю, но у меня скоро мозг лопнет от непонимания ситуации....
    Правлю генератор меню и не могу понять откуда берётся третья вложенность.
    Что я не вижу ?
    Сам код
    <?php
    $data['categories'] = [];
    
            $categories = $this->model_catalog_category->getCategories(0);
    
            $massIcons = [
                    0 => '<i class="glyphicon i1"></i>',
                    1 => '<i class="glyphicon i2"></i>',
                    2 => '<i class="glyphicon i3"></i>',
                    3 => '<i class="glyphicon i4"></i>',
                ];
            $iconCount = 0;
    
            foreach ($categories as $category) {
                $childIds = [];
                $childIds[] = $category['category_id'];
    
                if ($category['top']) {
                    // Level 2
                    $children_data = [];
    
                    $children = $this->model_catalog_category->getCategories($category['category_id']);
    
                    foreach ($children as $child) {
                        $childIds[] = $child['category_id'];
    
                        echo '<b>child:'.$child['name'].'</b><br>';
                        $children_data[] = array(
                            'name'  => $child['name'],
                            'href'  => $this->url->link('product/category', 'path=' . implode('_',$childIds))
                        );
                    }
    
                    // Level 1
                    echo '<b>cat:'.$category['name'].'</b><br>';
                    $data['categories'][] = array(
                        'name'     => $category['name'],
                        'children' => $children_data,
                        'column'   => $category['column'] ? $category['column'] : 1,
                        'href'     => $this->url->link('product/category', 'path=' . implode('_',$childIds)),
                        'icon'     => $massIcons[$iconCount]
                    );
                    $iconCount++;
                }
            }
    
            echo '<pre>';
            print_r($data['categories']);
            echo '</pre>';
            die("STOP SUKA !!!!");
    ?>

    Вот что выводит
    ``
    child:БЫТОВЫЕ КОНДИЦИОНЕРЫ
    child:МУЛЬТИ СПЛИТ СИСТЕМЫ
    child:ПОЛУПРОМЫШЛЕННЫЕ КОНДИЦИОНЕРЫ
    cat:КОНДИЦИОНИРОВАНИЕ
    child:ТЕРМОСТАТЫ
    child:ВОДА
    child:КОТЛЫ
    child:ТЕПЛОВЫЕ НАСОСЫ
    child:РАДИАТОРЫ
    child:ОБОГРЕВАТЕЛИ
    child:ТЕПЛОВЫЕ ПАНЕЛИ
    child:ТЕПЛОВЫЕ ЗАВЕСЫ
    cat:ОТОПЛЕНИЕ
    child:СТАБИЛИЗАТОРЫ НАПРЯЖЕНИЯ
    child:ИСТОЧНИКИ БЕСПЕРЕБОЙНОГО ПИТАНИЯ
    cat:ЭЛЕКТРОПИТАНИЕ
    cat:УВЛАЖНИТЕЛИ

    ``

    Denis Mazur
    @lans8097

    Ответ полностью не влазит пришлось грузить на дамп
    https://dumpz.org/c4kBePGR4Txb

    Если посмотрите то увидите что есть третий уровень вложенности у Вода тобиш третий, но в коде нет его....
    Что я упускаю ?

    Denis Mazur
    @lans8097

    Может я схожу сумма ?

    Как видите переменная $data['categories'] создаётся в самом начале и после прохождения выводится на экран после чего сценарий принудительно останавливается.

    Я вижу что генерируется массив с двумя уровнями вложенности, но по факту выходит три уровня вложенности.....

    Kirill Nesmeyanov
    @SerafimArts
    код - говно
    в этом и причина
    )
    Denis Mazur
    @lans8097
    @SerafimArts Таки да =) как и весь OpenCart
    rammanoj
    @rammanoj
    Hey, I am trying to upload files in PHP. I am using blueimp file up-loader. But I have a basic script. I don't know how actually the chunked code work. I think the code here https://github.com/blueimp/jQuery-File-Upload/blob/master/server/php/UploadHandler.php is only for the image uploads right ? I am trying to upload videos and other stuff using it but the video is getting uploaded properly. So, Is there any way to upload files in php ?
    with chunks
    Renato Marinho
    @renato2marinho_twitter

    Hey guys, I'm GitScrum founder. I want to invite group members to get to know GitScrum. Site: https://site.gitscrum.com/

    GitScrum’s agile approach to project management has proven itself to be a time and money saving strategy with the flexibility to keep up with rapid changes.

    Aleksey
    @fjodoroff
    Hello people
    One question, I deploy own app on heroku. App include google auth, but I've problem with added URI in console.google application credetials. I verifyed domain. But it didn't added. Could you tell me is it possible?
    Ребята, всем привет!
    NitroCode Alex
    @NitroCode1
    hi
    Andrey Kravchuk
    @TaPTaK
    hi
    Supriya singh
    @supriya.sk_gitlab

    i have php application which is using zend framework and mysql db,now my requirement is to convert the database into postgresql,is it possible to do that?,i tried setting following into application.ini file but its not working,can anyone suggest some solution regarding this?
    resources.db.adapter = pdo_pgsql
    resources.db.params.host = 'localhost'
    resources.db.params.username = 'postgres'
    resources.db.params.password = 'postgres'
    resources.db.params.dbname = 'sentrifugo'

    resources.db.isDefaultTableAdapter = true

    Shakti Singh
    @gurjarshakti
    Hi Below Code is working fine in local server but it is not working in live server
    $params = (array) json_decode(file_get_contents('php://output'), TRUE);
    what can be the issued
    Shakti Singh
    @gurjarshakti
    @gurjarshakti please help i
    Mirpuri Journal
    @MirpuriJournal_twitter
    Hi Shakti have you checked the path to your server
    undercloud
    @undercloud
    Hello everyone, now I am implementing the http client described in the https://www.php-fig.org/psr/psr-18/ standard, it’s quite difficult for me alone, but I implemented the whole basic part, some things are not completely most of the tests are worked out and missing, if you have a desire to join the joint development, or you have comments or suggestions - please contact me, I will be very grateful, my project is here https://github.com/undercloud/psr18
    rita252525
    @rita252525
    Можно ли сделать так, чтобы данные из двух форм выгружались в базу данных MYSQL в одну таблицу и заполняли одну строку из двух столбцов. При нажатии кнопки одной формы данные должны быть отправлены в столбец «USER», при нажатии кнопки другой формы данные должны быть отправлены в столбец «ORDER».
    <form method="POST">
        <input type="text" name="user" />
        <input type="submit" name="send" value="submit"/>
    </form>
    
    <form method="POST">
        <input type="text" name="order" />
        <input type="submit" name="send" value="submit"/>
    </form>
    Denys
    @dfinchenko
    Всем доброго дня! Подскажите плз как лучше реализовать такой момент: возврат ответа в json колбеку и отправка данных по апи в срм. Проблема в том, что колбек ожидает всего 1 секунду для получения ответа и если вызываем тут же отправку в срм, время увеличивается и ответа колбек не видит.
    RuSS_lan
    @russandrussky

    Можно ли сделать так, чтобы данные из двух форм выгружались в базу данных MYSQL в одну таблицу и заполняли одну строку из двух столбцов. При нажатии кнопки одной формы данные должны быть отправлены в столбец «USER», при нажатии кнопки другой формы данные должны быть отправлены в столбец «ORDER».

    <form method="POST">
        <input type="text" name="user" />
        <input type="submit" name="send" value="submit"/>
    </form>
    
    <form method="POST">
        <input type="text" name="order" />
        <input type="submit" name="send" value="submit"/>
    </form>

    так когда пишете в столбик «USER» верните ИД, а следуещей формой апдейтните столбец «ORDER» имея ИД предыдущей записи, или когда будете отправлять вторую форму отправте имя юзера и поискав его там апдейтните, при условии что имя юзера уникальное

    Irina Akhramovich
    @Irin.hr.it_gitlab

    PHP-разработчик, Москва (от 110 000 руб)

    Компания на рынке 11 лет. Работа над двумя проектами. Находимся в поиске PHP-разработчика.

    Что вам предстоит:
    
Поддержка и оптимизация существующего функционала, разработка и внедрение нового;
    Выбор инструментов для решения задач;
    Продумывание и реализация архитектуры таблиц для баз данных;
    Разработка парсеров разнообразного web-контента;
    Разработка роботов для массовых обработок сущностей по расписанию или запросу.

    Что мы ждем:

    ООП в PHP, опыт от 3-х лет;
    Хорошее знание MySQL (InnoDB, индексы), опыт от 3-х лет;
    Умение работать с SSH и знание простейших UNIX-команд;
    Умение разбираться в чужом коде.

    Что предлагаем:
Работа в просторном и уютном офисе по гибкому графику;
    Комфортное рабочее место, дополнительные мониторы и мощное железо;
    Вы сами решаете, на каком софте работать;
    Оплачиваемые обеды;
    Посещение профессиональных конференций и курсов за счёт компании;
    Система премирования.

    Полное описание вакансии смотрите здесь http://bit.ly/2wfSw2g

    Резюме и отклики присылайте irin.hr.it@gmail.com

    Manuk
    @ManukMinasyan
    Hey guys,
    who can help me do this task. Thanks
    I have an array of file names:
    
    $files = [
        '/usr/share/nginx/wordpress/wp-content/themes/index.php',
        '/usr/share/nginx/wordpress/wp-content/themes/mytheme.php',
        '/usr/share/nginx/wordpress/wp-content/plugins/myplugin.php',
        '/usr/share/nginx/wordpress/wp-content/plugins/akismet.php',
        '/usr/share/nginx/wordpress/wp-content/uploads/november.jpg',
    ];
    Below is a mixed list of specific file names, as well as file paths, that should be excluded. For example, ALL files under a file path should be excluded, but if the value is an actual file name, only that specific file should be excluded.
    
    $exclude = [
        '/usr/share/nginx/wordpress/wp-content/uploads',
        '/usr/share/nginx/wordpress/wp-content/plugins/myplugin.php',
    ];
    For example, you'll want to exclude the uploads directory (and all files in it), but ONLY the myplugin.php file.
    
    Devise a method for applying the exclusion list against the file list WITHOUT nested foreach() loops.
    Famous
    @famousmighodaro
    Please, I have a general question regarding DateTime object in Laravel. A user can have a lot of Date in the database table, that he/she will be fetching from the database table. Each Date has intervals and in most cases, they can view the next interval of each Date in an HTML table.
    So will it be right to create an object of each Date?
    Or what will be the best solution in this case?
    syedsimanta03
    @syedsimanta03
    
    
                        <!--Gallery Item-->
                        <div class="gallery-item mix branding vue col-md-4 col-sm-6 col-xs-12">
                            <div class="inner-box">
                                <figure class="image-box">
                                **    <img src="images/gallery/25b.jpg" alt="css"> **
                                    <!--Overlay Box-->
                                    <div class="overlay-box">
                                        <div class="overlay-inner">
                                            <div class="content">
                                                <a href="#
                                                " target="_blank" rel="noopener noreferrer" class="link"><span class="icon flaticon-link"></span></a>
                                                <a href="images/gallery/25b.jpg" data-fancybox="images" data-caption="branding"  class="link"><span class="icon flaticon-magnifying-glass"></span></a>
                                            </div>
    
                                        </div>
                                    </div>
                                </figure>
                            </div>
                        </div>
    How can I generate same code block above 5times but with different images number like this one has 25b.jpg. So I am unable to generate this same block dynamically 26b.jpg, 27b.jpg ... and so on.