понедельник, 17 августа 2020 г.

JavaScript learn

Чтобы вставить элемент после какого-то элемента, нужно создать прототип.

Element.prototype.appendAfter = function (element) { element.parentNode.insertBefore(this, element.nextSibling);
};



footer.appendAfter(modal.querySelector('[data-content]'));
document.body.appendChild(modal);

пятница, 13 декабря 2019 г.

Symfony controller && buttons

/**
*@Route("/{id}", name="users.show")
*@param User $user
*@return Response
*/
public function show(User $user): Response
{
    return $this->render('app/users/show.html.twig', compact('user'));
}
--------------------------------------------------





<div class="controls">


<a href="{{ path('users.edit', {'id': user.id}) }}" class="btn btn-primary">Edit</a>


{% if user.id.value != app.user.id %}


<a href="{{ path('users.role', {'id': user.id}) }}" class="btn btn-primary">Change Role</a>


{% endif %}


{% if user.wait %}


<form action="{{ path('users.confirm', {'id': user.id}) }}" method="post" onsubmit="return confirm('Are you sure?')">


<input type="hidden" name="token" value="{{ csrf_token('confirm') }}" />


<button type="submit" class="btn btn-success">Confirm</button>


</form>


{% endif %}


{% if user.active and user.id.value != app.user.id %}


<form action="{{ path('users.block', {'id': user.id}) }}" method="post" onsubmit="return confirm('Are you sure?')">


<input type="hidden" name="token" value="{{ csrf_token('block') }}" />


<button type="submit" class="btn btn-danger">Block</button>


</form>


{% endif %}


{% if user.blocked %}


<form action="{{ path('users.activate', {'id': user.id}) }}" method="post" onsubmit="return confirm('Are you sure?')">


<input type="hidden" name="token" value="{{ csrf_token('activate') }}" />


<button type="submit" class="btn btn-success">Activate</button>


</form>


{% endif %}


</div>

четверг, 14 ноября 2019 г.

key bind lubuntu

    <keybind key="W-S-Down">
      <action name="DirectionalCycleWindows">
        <direction>down</direction>
      </action>
    </keybind>


    <keybind key="Scroll_Lock">
      <action name="Execute">
        <command>galculator</command>
      </action>
    </keybind>
    <keybind key="C-Pause">
      <action name="Execute">
        <command>google-chrome</command>
      </action>
    </keybind>
    <keybind key="C-Scroll_Lock">
      <action name="Execute">
        <command>/home/pro/PhpStorm/PhpStorm-183.6156.29/bin/phpstorm.sh</command>
      </action>
    </keybind>

nano ~/.config/openbox/lubuntu-rc.xml

среда, 23 октября 2019 г.

Docker

command:
docker-compose up -- build -d (перебилдить контейнеры)

docker-compose exec api-php-cli composer install (запуск по ключи из образа 'docker-compose.yml')

docker-compose down -v (удалить все образы)

------контроль старых и опасных пакетов--------
"require-dev": {
    "roave/security-advisories": "dev-master"
}
-------------установка от юзера----------------
sudo chown $USER:$USER . -R
------------запуск тестов----------------------
docker-compose exec api-php-cli vendor/bin/phpunit
docker-compose exec api-php-cli composer test
-----------объект время------------------------ new \DateTimeImmutable()
-----------исключения--------------------------
public function getByEmail(Email $email): User
{
    if (!$user = $this->repo->findOneBy(['email' => $email->getEmail()])) {
        throw new EntityNotFoundException('User is not found.');
    }
    return $user;
}
-----------события------------------------------
1:~4:20, 5:19
interface EventDispatcher
{
    public function dispatch(...$events): void;
}

$this->dispatcher->dispatch(...$user->releseEvents());
---------------валидатор-----------------------
1:~5:00
-----------------------------------------------


sense-> примонтировать в app и запустить из виртуальной app
docker run --rm -v ${PWD}/sense:/app --workdir=/app php:7.2-cli php bin/app.php

запукс apache
docker run --rm -v ${PWD}/sense/public:/var/www/html -p 8080:80 php:7.2-apache

docker build --file=sense/Dockerfile --tag sense-php-cli sense

docker run -d(ввиде демона в фоне) --name(с именем) -v(вольюм)


docker-compose run --rm sense-php-cli composer install
docker-compose run --rm sense-php-cli composer require ramsey/uuid

getSomething - либо находит либо исключение
findSomething - либо находит или ноль
hasSomething - bool

docker-compose run --rm sense-php-cli php bin/console doctrine:migrations:diff

docker-compose run --rm sense-php-cli php bin/console doctrine:migrations:migrate


5:2:57:03 -> service (container) factory

-------CoreUI install-----
docker-compose run -- rm sense-php-cli composer require encore
docker-compose run --rm sense-node yarn add -s bootstrap jquery popper.js
docker-compose run --rm sense-node yarn add -s sass-loader node-sass
docker-compose run --rm sense-node yarn add -s @coreui/coreui font-awesome perfect-scrollbar simple-line-icons

среда, 12 июня 2019 г.

find & get method

Правила для методов:

findSomething - или находит, или - null
public function findSomething(string $value): ?Object

getSomething - как правило находит, иначе - исключение
public function getSomething(string $value): ?Object
как правило конструкция такая, но иногда без "?" в.т.с когда вы уверены что там это есть.

hasBySomething - bool (true or false)
isSomething - bool (true or false)
public function hasSomething(string $value): bool
public function isSomething(string $value): bool

Если метод ничего не возвращает - (void):
public function doSomething(string $value): void


php-cli.docker ==================================================
Do not run Composer as root/super user! See https://getcomposer.org/root for details

ENV COMPOSER_ALLOW_SUPERUSER 1
=====================================================

JavaScript learn

Чтобы вставить элемент после какого-то элемента, нужно создать прототип. Element.prototype.appendAfter = function (element) { element.paren...