PowerShell
[guid]::NewGuid().ToString()
PowerShell
[guid]::NewGuid().ToString()
# curl -fsSL https://deb.nodesource.com/setup_22.x | bash - # apt install -y nodejs
Model Context Protocol
Wymagane narzędzia: npx, uv, uvx
# curl -LsSf https://astral.sh/uv/install.sh | sh
Pliki które trzeba sprawdzić
/etc/php/8.4/fpm/php.ini /etc/php/8.4/cli/php.ini
Wartości które trzeb ustawić:
upload_max_filesize: 50M post_max_size: 50M
Sprawdzenie tylko CLI (nie fpm który faktycznie przesyła pliki przez Apache2)
# php -r "echo 'upload_max_filesize: ' . ini_get('upload_max_filesize') . PHP_EOL; echo 'post_max_size: ' . ini_get('post_max_size').PHP_EOL;"
Sposób wyświetlania
SELECT * FROM tabela \gx - Odpowiednik \G (dla zapytania) \x - włączenie trybu pionowego na stałe \x auto - przełączenie na pionowy widok tylko wtedy, gdy wiersze są za szerokie dla ekranu
SELECT * FROM tabela \x\g\x - włącza tryb pionowy, wysła zapytanie i wyłącza tryb w jednej linii
Operacje na bazach danych
\l - lista baz danych \c moja_baza - połączenie z bazą
Tabele
\d - lista relacji \dt - lista tabel \d moja_tabela - struktura tabeli \d+ moja_tabela - szczegóły tabeli: komentarze, rozmiar na dysku,
1. Typ danych vector(1536) — co to znaczy?
Wyobraź sobie że każde słowo, zdanie lub dokument możesz opisać jako punkt w przestrzeni. Nie w przestrzeni 2D (x, y) ani 3D (x, y, z) — ale w przestrzeni 1536-wymiarowej.
Kroki
screen lub tmux, żeby zerwanie połączenia nie przerwało procesuchown -R john:www-data /var/www/html/h27/tmp/ chmod -R 775 /var/www/html/h27/tmp/ chown -R john:www-data /var/www/html/h27/logs/ chmod -R 775 /var/www/html/h27/logs/
# Dodaj repozytorium PGDG (oficjalne repo PostgreSQL)
Czytaj dalej Postgres: baza i tabela dla pgvektor – powiązanie z cakePHP 5
https://github.com/h3imdall/ftp-remote-edit/archive/refs/heads/master.zip
ALTER TABLE brands ADD `uuid` UUID DEFAULT UUID();
Faktura (Invoices) nie ma pól netto, brutto, total_netto, total_brutto. Dane o kosztach znajduą się w InvoicePositions.netto i InvoicePositions.brutto
PHP nie ma klienta AI – zapytania poprzez curl
Struktura tabeli
Kopiujemy strukturę katalogów i plików ze zdalnego serwera na lokalny
Logowanie do konta Claude Pro https://claude.ai/
Instalacja globalna dla użytkownika (nie root)
Pliki poza aplikacją:
# mkdir -p /var/uploads/my_app # chown www-data:www-data /var/uploads/my_app # chmod 750 /var/uploads/my_app
https://github.com/FriendsOfCake/bootstrap-ui
# cd /var/www/my_project # cp -r vendor/cakephp/bake/templates/bake/ templates/bake/ - od tej pory do generowania modułu (bin/cake bake ..) będzie użyty lokalny szablon
# usermod -a -G www-data <username> // Weryfikacja # groups <username> <username>: username git www-data
$next_nb = str_pad((string) $next, 2, '0', STR_PAD_LEFT);
Lista ikon: https://icons.getbootstrap.com/
Najlepsza metoda – instalacja npm i kopiowanie do właściwych katalogów Czytaj dalej Bootstrap Icons
W szablonie:
<?php $user_id = $this->getRequest()->getAttribute('identity')->getIdentifier(); ?>
W kontrolerze:
$user_id = $this->Authentication->getIdentity()->getIdentifier();
$role = $this->Authentication->getIdentity()->get('role'); $role == 'admin' || 'user'
Wyłączenie z dostępu po zalogowaniu
use Cake\Event\EventInterface; public function beforeFilter(EventInterface $event): void { parent::beforeFilter($event); if(!$this->is_admin) { $this->Flash->error(__('Nie ma takiej strony')); $event->setResult($this->redirect('/')); return; } $this->Authentication->addUnauthenticatedActions(['edit', 'changePassword' ]); }
<!-- CSRF Token jako ukryte pole (fallback) --> <input type="hidden" name="_csrfToken" id="csrf-token-field" value="<?= $this->request->getAttribute('csrfToken') ?>">
let url = new URL(location.href); $("#proj-tabs").find(".nav-link").on('click', function() { var tab_name = $(this).attr('data-bs-target').replace("#", ""); url.searchParams.set("s_tab", tab_name); history.replaceState(null, null, url.href); });
Między serwerem developerskim -> repozytorium -> serwerem produkcyjnym