JSON – brak RequestHandlera zamiast tego JsonView
CakePHP 5 plugin PDF
Plugin PDF – WkHtmlToPdf rekomendowany silnik
# composer require friendsofcake/cakepdf
CakePHP 5 plugin CSV
Plugin CSV – instalacja w katalogu aplikacji
# composer require friendsofcake/cakephp-csvview
CakePHP 5 migracja – różnice z v.4
Zmieniło się: typowanie, json, fetchTable
Przenoszenie CRM na nowy serwer
Kopiowanie plików przez sieć, przenoszenie bazy, certyfikaty,
https://claude.ai/chat/b62ab800-58cd-4c56-96ea-c9d9937b03f4
Certbot – korekty parametru curves
https://claude.ai/chat/f46e500d-d53c-4f3f-8d6f-70df53d31673
updateAll – przypisanie wartości innego pola
use Cake\Database\Expression\QueryExpression; $this->Table->updateAll(['amount_remain' => new QueryExpression('amount') ], $conditions);
css spiner
.spinner {
/* ... */
opacity: 0;
animation:
fadeIn 500ms 100ms forwards,
rotate 1s linear infinite;
}
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes rotate {
to {
transform: rotate(360deg);
}
}
PHP – Zwraca datę początku i końca tygodnia – na podstawie Roku i nr tygodnia
private function getWeekDateRange($year, $week) { // Utworzenie obiektu DateTime dla pierwszego dnia określonego tygodnia $dto = new DateTime(); $dto->setISODate($year, $week); // Pierwszy dzień tygodnia (poniedziałek) $start_date = $dto->format('Y-m-d'); // Dodanie 6 dni aby otrzymać ostatni dzień tygodnia (niedziela) $dto->modify('+6 days'); $end_date = $dto->format('Y-m-d'); return [ 'start_date' => $start_date, 'end_date' => $end_date ]; }
JS – konstrukcje warunkowe
?? sprawdz. tylko null i undefined, || sprawdz. 0, '', NaN, null, undefined, false && warunkowego wykonania kodu
Aktualizacja certyfikatu domeny
Dla konkretnej domeny
# certbot certonly -d firma.domena.pl
Dla wszystkich certyfikatów
# certbot renew
JS – $.ajax – console.error
$.ajax({ url: '/api/products/get-all.json', type: 'GET', dataType: 'json', success(resp) { if(resp.resp.error) { $("#feedback").text(resp.resp.error).addClass('text-danger'); return; } $("#feedback").text(resp.resp.success).addClass('text-success'); }, error(e){ var message = ""; if(e.responseJSON !== 'undefined') message = e.responseJSON.message; if(e.responseText !== 'undefined') message = e.responseText.message; console.log(message ); } });
PHP Sury keys update
Błąd po komendzie apt update – klucz publiczny PHP wygasł
Err:6 https://packages.sury.org/php bullseye InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B188E2B695BD4743
Tabela szeroka – kolumny fixed
Jeśli tabela nie mieści się w oknie i chcemy zachować lewe kolumny (np. Nazwa wiersza) podczas przewijania w prawo:
Docker Desktop – options
Przy dodawaniu nowego kontenera:
Komputer lokalny Docker --------------------------------------------------- Port : 5678 | 5679 : 5678 Volume : C:\...\n8n-data1 : /home/node/.n8n Volume : C:\...\n8n-pliki : /pliki_n8n
Zmienne:
GENERIC_TIMEZONE : Europe/Warsaw TS : Europe/Warsaw
OpenAI – Javascript – starter
import OpenAI from "openai";
const client = new OpenAI();
const response = await client.responses.create({
model: "gpt-4.1",
input: "Write a one-sentence bedtime story about a unicorn.",
});
console.log(response.output_text);
Kolumna modified – aktualizowana przy każdej zmianie rekordu
-- Bez strefy czasowej ALTER TABLE invoices ADD COLUMN modified TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
Czytaj dalej Kolumna modified – aktualizowana przy każdej zmianie rekordu
Kopiowanie projektu
Wygenerowane przez Claude AI
- kopia całego katalogu projektu do nowego katalogu
- wykluczenie niektórych katalogów
- kopia bazy danych z uprawnieniami
Powiększeni przestrzeni dyskowej w Aruba
Wygenerowane przez Claude.ai
HTTP2 – Apache2 – PHP8.4-fpm
- Włączenie modułu apache2 http2
- Zmiany w virtual hosts
- Zmiany w PHP
Pakiet npm – postgres
Postgres – tabele
Tworzenie tabeli
CREATE TABLE users ( id serial primary key, name varchar(80), age int, -- how many years temp_hi int, -- high temperature prcp real, -- precipitation date date );
-- <komentarz>
DESC users – struktura tabeli users
\d+ users
Typy
int, smallint, real, double precision, char(N), varchar(N), date, time, timestamp, interval
Wstawianie danych – kopiowanie z pliku do tabeli
COPY users FROM '/home/joe/users.txt';
Postgres – komendy
Poziom klienta – terminala psql
\l[+] - lista baz danych \dt[+] - lista tabel \dp - tabele, widoki, uprawnienia \du - użytkownicy / role
DESC users – struktura tabeli users
\d+ users
\dT[+] - schema \dO[+] - collations
help \?
\q - WYJŚCIE exit
select version(); PostgreSQL 13.20 (Debian 13.20-0+deb11u1) on x86_64-pc-linux-gnu, compiled by gcc
Zmiana nazwy usera i katalogu domowego
Zmiana nazwy usera – jako root
# usermod -l newuser olduser
# usermod -m -d /home/newuser newuser
Sprawdzenie
# cat /etc/passwd # ls -l /home
Postgresql – databases
Postgresql – users
Jako użytkownik postgres (su – postgres)
# shell createuser --pwprompt username # pyta o hasło
Postgresql – konfiguracja
Pliki konfiguracyjne
# ls /etc/postgresql/13/main/ conf.d environment pg_ctl.conf pg_hba.conf pg_ident.conf postgresql.conf start.conf
Restart serwera Postgresql
systemctl restart postgresql
Postgresql instalacja
apt install postgresql
Javascript – formatowanie liczb finansowych
var tc = new Intl.NumberFormat('pl-PL', { style: "currency", currency: "PLN" }).format(total_costs);
tc: 2 136 703,77 zł
var bilans = new Intl.NumberFormat('pl-PL').format(bilans);
bilans: 7 324 432,32