PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 7
КимЧенИн Отправлено: 01 Декабря, 2021 - 22:25:43 • Тема: Побитовые операции • Форум: Вопросы новичков

Ответов: 4
Просмотров: 344
Да, спасибо за участие. Я думал это самописный китайский код, оказалось что это аналог base64_encode и sha
КимЧенИн Отправлено: 01 Декабря, 2021 - 13:43:51 • Тема: Побитовые операции • Форум: Вопросы новичков

Ответов: 4
Просмотров: 344
Здравствуйте
эта функция вычисляет хеш для захода в админку, вот так она вызывается
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var pass = 'qwerty';
  3. var user = 'admin';
  4. var token = 'qeTYkhKjkjkbb42334656';
  5. token=token.trim();
  6.  
  7.  
  8. var psd = base64encode(SHA256(user + base64encode(SHA256(pass)) + token));
  9.  

вот основной момент который все вычесляет
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function S (X, n) {
  3.         return ( X >>> n ) | (X << (32 - n));
  4.     }
  5. function R (X, n) {
  6.         return ( X >>> n );
  7.     }
  8.  
  9. function Ch(x, y, z) {
  10.         return ((x & y) ^ ((~x) & z));
  11.     }
  12.  
  13. function Maj(x, y, z) {
  14.         return ((x & y) ^ (x & z) ^ (y & z));
  15.     }
  16.  
  17. function Sigma0256(x) {
  18.         return (S(x, 2) ^ S(x, 13) ^ S(x, 22));
  19.     }
  20.  
  21. function Sigma1256(x) {
  22.         return (S(x, 6) ^ S(x, 11) ^ S(x, 25));
  23.     }
  24.  
  25. function Gamma0256(x) {
  26.         return (S(x, 7) ^ S(x, 18) ^ R(x, 3));
  27.     }
  28.  
  29. function Gamma1256(x) {
  30.         return (S(x, 17) ^ S(x, 19) ^ R(x, 10));
  31.     }
  32.  
КимЧенИн Отправлено: 01 Декабря, 2021 - 01:07:17 • Тема: Побитовые операции • Форум: Вопросы новичков

Ответов: 4
Просмотров: 344
Нужно переписать js функцию на php
Там используются побитовые операции. Числа которые используются в таких операциях в отличии от php 32 разрядные. Более того, когда происходит переполнение, возвращается отрицательное значение.
И это отрицательное число дальше используется в функции.
Как такое реализовать на php?
КимЧенИн Отправлено: 22 Октября, 2018 - 17:01:10 • Тема: Помогите понять • Форум: Объектно-ориентированное программирование

Ответов: 7
Просмотров: 2086
В том то и дело, вот как он вызывается
PHP:
скопировать код в буфер обмена
  1.  
  2.   public function onAddToCart(CartEntityAddEvent $event) {
  3.     $this->purchasedEntity = $event->getEntity();
  4.  
  5.   }
  6.  

Все!
Просто запрвшивается метод из класса который возвращает переменную,
PHP:
скопировать код в буфер обмена
  1.   /**
  2.    * Gets the added entity.
  3.    *
  4.    * @return \Drupal\commerce\PurchasableEntityInterface
  5.    *   The added entity.
  6.    */
  7.   public function getEntity() {
  8.     return $this->entity;
  9.   }

которая содержит объект, который хрен знает как туда попадает Огорчение
(Добавление)
Вот я пытаюсь проделать то же самое в своем классе, нифига не получается
PHP:
скопировать код в буфер обмена
  1.  
  2.     public function __construct(CartEntityAddEvent $event) {
  3.       $this->purchasedEntity = $event->getEntity();
  4.     }

Цитата:
ArgumentCountError: Too few arguments to function
КимЧенИн Отправлено: 22 Октября, 2018 - 16:46:18 • Тема: Помогите понять • Форум: Объектно-ориентированное программирование

Ответов: 7
Просмотров: 2086
Мелкий пишет:
Посмотрите в объявление любого класса, который можно передать в метод

Вот этот момент я и не понимаю, Каким образом сюда передается объект, если внедряется интерфейс.
Как увидеть этот класс. А если классов имплементирующих интерфейс несколько, то какой объект передается?
Я не понимаю именно прицип сего действа.
КимЧенИн Отправлено: 22 Октября, 2018 - 14:40:35 • Тема: Помогите понять • Форум: Объектно-ориентированное программирование

Ответов: 7
Просмотров: 2086
Это рабочий модуль, он работает, я пытаюсь в нем разобраться.
В $this->entity = $entity точно объект передается.
если в php storm ctrl click по PurchasableEntityInterface то переходит именно в интерфейс
PHP:
скопировать код в буфер обмена
  1. /**
  2.  * Defines the interface for purchasable entities.
  3.  *
  4.  * Lives in Drupal\commerce instead of Drupal\commerce_order so that entity
  5.  * type providing modules such as commerce_product don't need to depend
  6.  * on commerce_order.
  7.  */
  8. interface PurchasableEntityInterface extends ContentEntityInterface {

нифига не понимаю
КимЧенИн Отправлено: 22 Октября, 2018 - 13:30:52 • Тема: Помогите понять • Форум: Объектно-ориентированное программирование

Ответов: 7
Просмотров: 2086
Всем привет, никак до конца не пойму работу с интерфейсами.
Вот есть класс(привожу частично)
PHP:
скопировать код в буфер обмена
  1.  
  2. class CartEntityAddEvent
  3. ----
  4.  public function __construct(OrderInterface $cart, PurchasableEntityInterface $entity, $quantity, OrderItemInterface $order_item) {
  5.     $this->cart = $cart;
  6.     $this->entity = $entity;
  7.     $this->quantity = $quantity;
  8.     $this->orderItem = $order_item;
  9.   }
  10. -------
  11.   public function getEntity() {
  12.     return $this->entity;
  13.   }
  14.  

как видно в конструтор он принимает 3 интерфейса и одну переменную.
Нифига не пойму каким образом интерфейс преобразуется в класс

Вот он вызывается
PHP:
скопировать код в буфер обмена
  1.  
  2. class.....
  3. ---------
  4.   public function onAddToCart(CartEntityAddEvent $event) {
  5.     $this->purchasedEntity = $event->getEntity();
  6.   }
  7.  


Опять же как он вызывается? Это внедрение зависимости? Прямо в отдельную функцию? Как все это работает?

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB