• Как правильно верстать адаптивно?

    Aetae
    @Aetae
    Тлен
    Чтобы верстать адаптивно - в первую очередь надо верстать адаптивно.
    Размеры все должны быть по максимуму относительными.
    Флексы, гриды, проценты, vh, vw, em.
    Медиа-запросы же нужно использовать только тогда, когда нужно поменять структуру кардинально, а не для подгонки пикселей.
    Ответ написан
    Комментировать
  • В чем разница между при вызове классов?

    hack504
    @hack504
    Какой способ вызова наиболее ресурсоемкий и быстрый?

    Никакой. Даже если и есть преимущество, то это экономия на спичках. Вообще ООП призван решать другие проблемы и на быстроту ему плевать.
    Ответ написан
    Комментировать
  • В чем разница между при вызове классов?

    @sidni
    Php Developer
    Вызов статических методов происходит быстрее и менее ресурсоемкими поскольку не нужно создавать экземпляр класса и они являются частью самого класса.
    Разница между ними является это сам подход в программировании и разная область видимость компонентов самого класса.
    Традиционный вызов через экземпляр класса является более приемлемым т. к. этот подход позволяет сохранить все "благородные" подходы (OOP, SOLID и т. д.)
    Вызов статических не рекомендуется потому как большинство принципов и подходов нарушаются. чаще всего используется вызов статических методов в хелперах (например классы для удобства работы по обратоке строк, математических функций и т. д.) либо в паттернах аля синглтон (обычно это какието глобальные классы в рамках самого проекта где можно быстро получить какие то конфигурационные данные проекта, доступ к базе данных и т. д.)
    Ответ написан
    Комментировать
  • Библиотека-генератор php классов (файлов)?

    IgorPI
    @IgorPI Автор вопроса
    Всё проще, чем я ожидал.

    На примере "Laravel"

    Файл app/Console/Commands/stubs/controller.stub

    <?php
    
    namespace DummyNamespace;
    
    use App\Http\Controllers\Controller;
    use Illuminate\Http\Request;
    
    class DummyClass extends Controller
    {
    	public $user;
    
    	/**
    	 * DummyClass constructor.
    	 */
    	public function __construct()
    	{
    		$this->middleware(['auth:api', 'role:admin|organizer|prof_organizer'])->only(['store', 'update', 'destroy']);
    
    		$this->user = \Auth::guard('api')->user();
    	}
    
    	/**
    	 * Display a listing of the resource.
    	 *
    	 * @return \Illuminate\Http\Response
    	 */
    	public function index()
    	{
    		//
    	}
    	
    	/**
    	 * Store a newly created resource in storage.
    	 *
    	 * @param  \Illuminate\Http\Request  $request
    	 * @return \Illuminate\Http\Response
    	 */
    	public function store(Request $request)
    	{
    		//
    	}
    
    	/**
    	 * Display the specified resource.
    	 *
    	 * @param  int  $id
    	 * @return \Illuminate\Http\Response
    	 */
    	public function show($id)
    	{
    		//
    	}
    	
    	/**
    	 * Update the specified resource in storage.
    	 *
    	 * @param  \Illuminate\Http\Request  $request
    	 * @param  int  $id
    	 * @return \Illuminate\Http\Response
    	 */
    	public function update(Request $request, $id)
    	{
    		//
    	}
    
    	/**
    	 * Remove the specified resource from storage.
    	 *
    	 * @param  int  $id
    	 * @return \Illuminate\Http\Response
    	 */
    	public function destroy($id)
    	{
    		//
    	}
    }


    Класс генератор
    <?php
    
    namespace App\Console\Commands;
    
    use Illuminate\Console\GeneratorCommand;
    use Symfony\Component\Console\Input\InputOption;
    
    class MakeController extends GeneratorCommand
    {
    	/**
    	 * The console command name.
    	 *
    	 * @var string
    	 */
    	protected $name = 'make:controller';
    
    	/**
    	 * The console command description.
    	 *
    	 * @var string
    	 */
    	protected $description = 'Create a new Controller resource class';
    
    	/**
    	 * The type of class being generated.
    	 *
    	 * @var string
    	 */
    	protected $type = 'Controller';
    	
    	/**
    	 * Get the stub file for the generator.
    	 *
    	 * @return string
    	 */
    	protected function getStub()
    	{
    		return __DIR__.'/stubs/controller.stub';
    	}
    
    	/**
    	 * Get the default namespace for the class.
    	 *
    	 * @param  string  $rootNamespace
    	 * @return string
    	 */
    	protected function getDefaultNamespace($rootNamespace)
    	{
    		return $rootNamespace."\\Http\\Controllers\\Api";
    	}
    }
    Ответ написан
    3 комментария
  • Как вывести значения переменной?

    @DanKud
    echo $$color;

    P.S. Но вообще массив значений нужно хранить именно в массиве, а не так как вы это пытаетесь сделать:
    $intensityofcolor = get_post_meta($post->ID, 'intensityofcolor', 1);
    $arrColors = [
        8 => 93,
        9 => 76,
        10 => 57
    ];
    echo $arrColors[$intensityofcolor];
    Ответ написан
    1 комментарий
  • Чем отличаются компоненты высшего порядка и декораторы?

    miraage
    @miraage
    Старый прогер
    Если простыми словами..

    Декоратор - функция, которая принимает другую функцию (назовём её "базовая") на вход и возвращает третью функцию, которая у себя под капотом вызывает/использует базовую.

    HOC - частный случай декоратора, когда базовой функцией является React компонент.
    Ответ написан
    Комментировать
  • Чем отличаются компоненты высшего порядка и декораторы?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Насколько я понял, под декораторам вы подразумевали не паттерн проектирования, частным случаем которого являются компоненты высшего порядка, а аннотации ES7 decorators:
    @annotation
    class MyClass { }

    Если это так, то почитайте:
    Компоненты высшего порядка
    Декораторы ES7
    Компоненты высшего порядка как декораторы
    Ответ написан
    Комментировать
  • Где ловить ошибки при программировании на php?

    kotomyava
    @kotomyava
    Системный администратор
    При работе с PHP можно использовать отладчик, например xdebug, и какую-нибудь IDE поддерживающую отладку через него, тогда уровень отладки будет примерно таким же.
    Ответ написан
    Комментировать