<?php foreach($data as $a): ?>
<?= $a->number ?>
<?php endforeach; ?>
{"except_days":"","arrival_date":null,"from":null,"uid":"086B_0_2","title":"Минск — Киев","departure_date":null,"start_time":"22:40","number":"086Б","short_title":"Минск — Киев","days":"ежедневно, кроме 18.07, 27.09, 10.10","to":null,"carrier":{"code":114,"offices":[],"codes":{"icao":null,"sirena":null,"iata":null},"title":"Беларуская Чыгунка"},"transport_type":"train","stops":[{"arrival":null,"departure":"2018-07-28 22:40:00","terminal":null,"platform":"","station":{"code":"s9613989","station_type":"station","title":"Минск-Пасс.","popular_title":"","short_title":"","codes":{"yandex":"s9613989","esr":"140210"},"transport_type":"train","station_type_name":"станция","type":"station"},"stop_time":null,"duration":0.0},{"arrival":"2018-07-28 23:57:00","departure":"2018-07-29 00:01:00","terminal":null,"platform":"","station":{"code":"s9614258","station_type":"station","title":"Осиповичи-1","popular_title":"","short_title":"","codes":{"yandex":"s9614258","esr":"146407"},"transport_type":"train","station_type_name":"станция","type":"station"},"stop_time":240,"duration":4860.0},{"arrival":"2018-07-29 00:30:00","departure":"2018-07-29 00:33:00","terminal":null,"platform":"","station":{"code":"s9614101","station_type":"station","title":"Бобруйск","popular_title":"","short_title":"","codes":{"yandex":"s9614101","esr":"147008"},"transport_type":"train","station_type_name":"станция","type":"station"},"stop_time":180,"duration":6780.0},{"arrival":"2018-07-29 01:25:00","departure":"2018-07-29 01:28:00","terminal":null,"platform":"","station":{"code":"s9614068","station_type":"station","title":"Жлобин-Пасс.","popular_title":"","short_title":"","codes":{"yandex":"s9614068","esr":"155004"},"transport_type":"train","station_type_name":"станция","type":"station"},"stop_time":180,"duration":10080.0},{"arrival":"2018-07-29 02:45:00","departure":"2018-07-29 03:09:00","terminal":null,"platform":"","station":{"code":"s9614088","station_type":"station","title":"Гомель-Пасс.","popular_title":"","short_title":"","codes":{"yandex":"s9614088","esr":"150000"},"transport_type":"train","station_type_name":"станция","type":"station"},"stop_time":1440,"duration":16140.0},{"arrival":"2018-07-29 03:45:00","departure":"2018-07-29 04:24:00","terminal":null,"platform":"","station":{"code":"s9614894","station_type":"station","title":"Терюха","popular_title":null,"short_title":null,"codes":{"yandex":"s9614894","esr":"150301"},"transport_type":"train","station_type_name":"станция","type":"station"},"stop_time":2340,"duration":20640.0},{"arrival":"2018-07-29 08:56:00","departure":null,"terminal":null,"platform":"","station":{"code":"s9614928","station_type":"station","title":"Киев-Пасс.","popular_title":"","short_title":"","codes":{"yandex":"s9614928","esr":"320308"},"transport_type":"train","station_type_name":"станция","type":"station"},"stop_time":null,"duration":36960.0}],"vehicle":null,"start_date":"2018-07-28","transport_subtype":{"color":null,"code":null,"title":null},"express_type":null}
$a->number
приведет к фаталу (ибо $а не является объектом).<?= $data->number ?>
<? var_dump($data->number); ?>
Так работает.<?php foreach($data as $a): ?>
<?= $a ?>
<?php endforeach; ?>
<?php foreach($data as $k=>$a): ?>
<?=(is_string($a))?"$k=>$a<br>":"$k=>".json_encode($a)."<br>" ?>
<?php endforeach; ?>
5.4.0 Тег <?= доступен всегда, вне зависимости от настройки short_open_tag
для извлечения произвольного поля нужно написать рекурсивную функцию, которая будет перебирать всё "дерево" и находить нужное значение.вот это - перебор.
не знаю или вы помните сколько было воплей, когда в пыхе сделали short_open_tag по дефолту выключенными
Код в первую очередь должен работать/исполняться быстро, безопасно и как требует бизнес-логика проекта/сервиса.
А как он будет восприниматься - зависит уже от конкретного специалиста.
Для тех кто только начал кодить и особо ещё не научился - важны понты в виде соблюдения PSR.
ну хз, я пока не встречал того места, где было что-то отличное от PSRя встречал и встречаю. PSR-1/2 были приняты в 2012 году, на пыхе писали задолго до этого и продолжают поддерживать/развивать написанное тогда.
Но беспокоиться за "<?=" не имеет смысла, т.к. она не взодит в группу "ненужного функционала"в пыхе ворох проблем, не решаемых годами из-за стремления сохранить обратную совместимость. и я совсем не удивлюсь, даже обрадуюсь, если/когда кор-тим решит с этим покончить.
в пыхе ворох проблем, не решаемых годами из-за стремления сохранить обратную совместимость.
Короче, шорретг "<?" правильно запретили, это логично, т.к. ведёт к куче проблемХотелось бы про них узнать, т.к. сам я на практике ни разу не столкнулся...
Да что уж там, давайте тогда и на отступы забъём. Кому нужны переносы строк и пробельчики? Это же просто понты!Я пишу код в notepad++ и пользуюсь несколькими плагинами. Надо выложить код в репу - я пройдусь плагином Indent By Fold. Мне пока хватает такого простого IDE с головой и не вызывает затруднений или неудобств при разработке. Пока не вижу для себя смысла переходить на более "тяжёлые" IDE.
Хотелось бы про них узнать, т.к. сам я на практике ни разу не столкнулся...
Я пишу код в notepad++ и пользуюсь несколькими плагинами. Надо выложить код в репу - я пройдусь плагином Indent By Fold. Мне пока хватает такого простого IDE с головой и не вызывает затруднений или неудобств при разработке. Пока не вижу для себя смысла переходить на более "тяжёлые" IDE.
function starts_with(string $haystack, string $needle): bool
{
return $needle !== '' && \substr($haystack, 0, \strlen($needle)) === $needle;
}
Ну попробуйте создать простой XML файл с расширением php и подставить туда переменные.Не понял... Зачем для XML делать расширение PHP?!
<?
header("Content-type: text/xml");
$sitename=$_SERVER['HTTP_HOST'];
echo '<?xml version="1.0" encoding="UTF-8" ?>';
ob_start();
?><urlset>
<url>
<loc>http://<?=$sitename?>/goods/</loc>
<lastmod>2016-04-20T02:53:35Z</lastmod>
<priority>1</priority>
</url>
..............
</urlset>
<Files sitemap.xml>
AddType application/x-httpd-php .xml
</Files>
Не понял... Зачем для XML делать расширение PHP?!
$router->get('/sitemap.xml', 'Controller@action');
<?xml version="1.0" encoding="UTF-8" ?>
<urlset>
<url>
<loc>http://{{ site.name }}/goods/</loc>
<lastmod>{{ site.modified | rfc3339}}</lastmod>
<priority>1</priority>
</url>
..............
</urlset>
// ...
public function render(): string
{
return $this->twig->render(..., ['site' => $this->site]);
}
// Вывод
\header('Content-type: text/xml');
$site = new Site('Name', new \DateTime());
echo (new Sitemap($site, ...))->render();
<?xml
, если файл обрабатывается php-обработчиком. Других и не встречалось. Правильно я понял? А так да, убрали именно потому, что он конфликтует с другими форматами.Могли бы просто оступ (пробельный символ) учесть и проблема бы решилась.
Могли бы просто оступ (пробельный символ) учесть и проблема бы решилась.
1) Шаблонизаторы никак не влияют на производительность, т.к. в конце концов они тоже собираются в обычный phpРегулярка вместо шаблонизатора.
2) Объекты быстрее и легче всего прочего, помимо этого они лучше работают с GС
3) А регулярки зачем? Эти проблемы обычный phpcfb решают, ну или какие-нибудь CI, вроде styleci.
Хотелось бы про них узнать, т.к. сам я на практике ни разу не столкнулся...да запросто: приносит мне соискатель свой код, а он у меня не запускается.
Не только. Ещё трудозатраты.это как-то отменяет написанное мной?
на создание объекта (и соотв. выделяется доп. память под это) с методом и просто метод в виде функции (и сравните).
2. на рендер: регуляркой и шаблонизатором (и сравните).
элементарно - только со стороны сервера, но не со стороны каждого соискателя) Вы же не скажете каждому всегда писать полные теги, если он привык к коротким? Ещё раз: СО СТОРОНЫ СЕРВЕРА будет проще всего.
Любой не джун и так будет использовать полные теги, т.к. у него есть плачевный опыт и минимальные знания стандартов.Если у меня нет плачевного опыта и я использую short-tags, значит я - джун?! Такая что ли логика?))
человек, который не знает основи снова здравствуйте: это не основы, это один из множества стайлов.
ваша аргументация на уровне "мерседес - вот это машина, остальное - говно".
да, определенный стандарт - удобно и полезно для опенсорса. только помимо опенсорса есть и другие сферы деятельности, где навязываемые расстановка скобок и кейс в именовании методов ни на что не влияют.
Если только в мире бы существовало 3 вида автомобилей и на мерседесе катался 9 человек из 10-ти. Остальные 10% просто потому, что жалко выкидывать на свалку свой тазик.в мире больше, чем 3 марки авто, и на мерседесах катается не 90%. но вы дальше продолжаете воспроизводить мантру "мерседес - вот это машина, остальное - говно".
Такие конторы называются "веб-студии", которые клепают одноразовые лендинги. Ах, ну да, ещё фриланс. Там не важно кто и как потом будет это поддерживать, главное вывалить клиенту что-то более-менее рабочее.сам шучу - сам смеюсь?
А что у вас за "проекты", собственно такие, где всем срать, простите за прямоту, на то как написан код?сам шучу - сам смеюсь, номер 2?
когда кодстайл всего проекта исправляется одной командой в консоли - довольно печально бахвалиться тем, что ваш код игнорирует все возможные рекомендациинет бахвальства, есть целесообразность или ее отсутствие.
в мире больше, чем 3 марки авто, и на мерседесах катается не 90%. но вы дальше продолжаете воспроизводить мантру "мерседес - вот это машина, остальное - говно".
сам шучу - сам смеюсь, номер 2?
нет бахвальства, есть целесообразность или ее отсутствие.
Что в мире есть актуального и хотя бы на 1/10 такого же популярного как PSR?какая связь с написанным мною?
Почему вы до сих пор не поправили всё автоматом? Не целесообразно, т.к. у вас нет новых разработчиков, которые приходят, смотрят на код, матерятся и уходят?опять влажные фантазии.
if ($a > $b) {
$foo->bar($arg1);
}
более правильно, чемif( $a > $b ) {
$foo->bar( $arg1 );
}
или что допустимо использовать <?= вместо <?php echo смысла не имеет.Мне действительно интересно почему ваша аргументация всегда основывается на том, что если вы возитесь с легаси, то и все остальные тоже должны с ним возитьсямне действительно интересно почему вы решили, что мы возимся с легаси? только потому что наш стайл устраивает нас больше, чем пср?
или у вас клин на пире/зенде/прочих, и нет мысли что сотрудники компании способны сами для себя выработать стайл
где вы узрели оскорбления? o_O
л - логика. и она у вас просто потрясающая. правда со знаком минус.
если вы не заметили, то в треде речь идет конкретно о пср-1/2, которые касаются исключительно оформления кода.
а теперь риторический вопрос: применение пср-1/2 сделает код битрикса лучше?
Цитатаи что в ней оскорбительного?
Да сделаетgovnokod.ru/23695 вот вам функция оформленная по пср за исключением отступов. она хороша?
и что в ней оскорбительного?
govnokod.ru/23695 вот вам функция оформленная по пср за исключением отступов. она хороша?
да и примеры по вашей ссылке показывают что определенного код-стайла в битриксе либо нет вообще, либо никто его не соблюдает и не следит за соблюдением - пример нещитовый, поищите другой.
Да сделает, потому что соблюдение стандартов и приведение кода к стандартам это первый шаг к рефакторингу и улучшению качества всего приложения.ОМГ! Поздно пить боржоми, когда почки отказали! Это надо делать заранее, пока сроки не сгорели!
ОМГ! Поздно пить боржоми, когда почки отказали! Это надо делать заранее, пока сроки не сгорели!
Я проектирую всю архитектуру вначале в схемах и сразу вижу сколько раз я БУДУ ИСПОЛЬЗОВАТЬ! один и тот же код. Т.е. заранее делаю рефакторинг при проектировании архитектуры на верхнем уровне абстракции, чтобы не прыгать вверх-вниз и не тратить двойное (если не больше!) время на разработку проекта.
тогда у вас женская логикасори, но если в констатации факта, выраженной в вежливой форме, вы видите оскорбление, то я помочь ничем не смогу.
соблюдение стандарта(хотя я вижу только часть кода) уже помогает понять что данная функция требует рефакторинга и декомпозицииa без стандарта не понятно?
А что делать если к Вам уже пришел готовый "продукт с душком"?
сори, но если в констатации факта, выраженной в вежливой форме, вы видите оскорбление, то я помочь ничем не смогу.
a без стандарта не понятно?
а с другим стандартом, отличным от пср, не понятно?
https://goo.gl/uFrNEp - код, написанный по пср. он хороший?
восстановить архитектуру
документировать
переформировать на схеме функциональные блоки без повторения функциональности и т.д.
проработать стратегию реструктуризации существующей архитектуры
реализовать на коде
C точки зрения PSR - возможно. С точки зрения SOLID - нет. :)вы пришли в спор о оформлении кода и заявили что "код, оформленный не по стандарту - гавно". я вам показал, что код, оформленный по стандарту и из крупного сообщества - тоже гавно (при чем не из-за солид'а, а сам по себе; это говнокод чистой воды, даже если выдернуть из фреймворка и написать отдельно на страничке). так с чем именно вы спорите?
Приведите пример стандарта отличного от PSR которое широко используется в сообществевы снова делаете ту же ошибку, что в начале спора. и ту же, что и предыдущий оратор.
"Продолжим писать ща код - +30-50% к сроку.
Сделаем валидацию и реструктуризацию архитектуры - +10%.
Что делаем?"
вы пришли в спор о оформлении кода и заявили что "код, оформленный не по стандарту - гавно".
при чем не из-за солид'а, а сам по себе; это говнокод чистой воды, даже если выдернуть из фреймворка и написать отдельно на страничке
вы снова делаете ту же ошибку, что в начале спора. и ту же, что и предыдущий оратор.
читайте тред полностью, на этот вопрос я уже отвечал.
Пожалуйста ссылочку или скриншот где я делаю это утверждениек чему тогда была ссылка на битрикс?
С нетерпением жду от вас разбора, что именно не так в приведенном вами кодеподавление ошибок вместо их проверок.
нигде не нашел ссылки которая бы показала, что именно я у вас попросила мысли что об этом мог попросить другой не возникло?
к чему тогда была ссылка на битрикс?
а мысли что об этом мог попросить другой не возникло?
мне иногда забавно погонять фанатиков.
Я еще раз прошу, читайте мои сообщения внимательно и целиком, тогда вы поймете что я имел ввиду и не будете додумывать нелепости.окей, не буду додумывать: какая связь между оформлением кода по пср и качеством кода в целом и битриксом (в котором вообще нет код-стайла) в частности?
Я еще раз повторяю, то что я вас просил привести я в треде не нашел, еще раз перечитайте что именно я вас просил привести.фигасе: не помним даже на что сами отвечали o_O бывает
"фанатик" тут выэто же именно я надрываюсь здесь доказывая, что есть только один код-стайл под названием пср, а другие стайлы - это отстой, и использование их - грехоподобно.
окей, не буду додумывать: какая связь между оформлением кода по пср и качеством кода в целом и битриксом (в котором вообще нет код-стайла) в частности?
или у вас клин на пире/зенде/прочих, и нет мысли что сотрудники компании способны сами для себя выработать стайл
Угу, вот разработчики битрикса выработали свой уникальный "стайл" которым следуют не только они, но и все их комьюнити. Вот до сих пор следуют.
фигасе: не помним даже на что сами отвечали o_O бывает
внимательно прочтите пару коментов до начала вашего выступления.
это же именно я надрываюсь здесь доказывая, что есть только один код-стайл под названием пср, а другие стайлы - это отстой, и использование их - грехоподобно.
Перечитал, так и не нашел ссылки, за сим делаю вывод что ее нет.ее и нет. ибо ни какой другой стандарт, кроме пср, не популяризиловался.
Это было приведено как пример, что не всегда отклонение от общепринятых стандартов хорошо, вот и все.в битриксе вообще нет стайла, и проблема у него вовсе не в стайле. и приводить его как пример в споре о стайле - ни о чем.
ее и нет. ибо ни какой другой стандарт, кроме пср, не популяризиловался.
однако, это не делает все другие код-стайлы, как открытые так и закрытые, автоматически плохими (хотя некоторые из них действительно плохи), а код, использующий их - ужасным.
в битриксе вообще нет стайла, и проблема у него вовсе не в стайле. и приводить его как пример в споре о стайле - ни о чем.
давайте иначе: я утверждаю, что используемый код-стайл никак не связан с качеством самого кода, и что не столь принципиально какой именно код-стайл используется; главное, чтоб он вообще был и был консистентным по всему проекту.
вы согласны с этим? или только пср и ничего другого?
напоминаю: речь не о пср в целом, а только о той его части, которая касается код-стайла.
ее и нет. ибо ни какой другой стандарт, кроме пср, не популяризиловался.
Так плохие стандарты и не популяризируют.+
Зайдите на сайт битрикса и почитайте о их нормах и стандартах. У них есть свой стиль которому они следуют.
Зайдите на сайт битрикса и почитайте о их нормах и стандартах. У них есть свой стиль которому они следуют.если вы сами посмотрите на код, на который сами же ссылаетесь, то без труда сможете увидеть, что стиля никакого там нет. он может быть на сайте битрикса и задекларирован, но в коде не наблюдается никаких стандартов. повторю в очередной раз - пример нещитовый.
Я вам предлагаю не мелочится и сразу написать этим ребятам https://sensiolabs.com/, что есть и другие замечательные стандарты. А еще лучше выступить на ближайшей php конференции с докладом "почему ПСР не панацея" или что-то в этом духе.зачем? у меня нет проблем с код-стайлами: если на проекте используется пср-стайл - я совершенно спокойно и без истерик использую пср-стайл; если другой - совершенно спокойно и так же без истерик использую другой стайл. благо современные инструменты позволяют этим крутить как угодно.
Так плохие стандарты и не популяризируют.не все стандарты открыты. вы их автоматом и ничего о них не зная записали в плохие, но фанатик почему-то я.
В общем всего вам доброго, не болейте.и вам не хворать.