Wypowiedzi
-
Też dopiero zaczynam się uczyć w Swift :) Mam nadzieję że pomimo małej aktywności na grupie znajdą się osoby które będą w stanie pomóc początkującemu.
Pozdrawiam,
Marcin -
Dzięki za polecenie książek, przyjże się im :)
-
Witam,
Chcę nauczyć się programować w Swift i zastanawiam się nad sensem zakupu kursów i książek. Czy macie jakieś sprawdzone pozycje?
Ja znalazłem coś takiego, pytanie tylko czy jest to warte tych pieniędzy?
http://swiftlab.pl
https://eduweb.pl/kursy/ios/aplikacje-ios-xcode-swift.html
http://ebookpoint.pl/ksiazki/podstawy-jezyka-swift-pro... -
Witam,
Mam pewien problem z grupowaniem rekordów, a późniejszym odwoływaniem się do relacji.
Mam encję Product, która zawiera relację do tabeli ze stanami magazynów
/**
* @ORM\Entity(repositoryClass = "Pit\VnetBundle\Repository\ProductRepository")
* @ORM\Table(
* name = "products",
* uniqueConstraints = {
* @ORM\UniqueConstraint(name = "name", columns = {"name"})
* }
* )
*
* @UniqueEntity(fields = {"name"})
*/
class Product
{
// ...zbędny kod
/**
* @var ArrayCollection|WarehouseItem[]
*
* @ORM\OneToMany(targetEntity="WarehouseItem", mappedBy="product", cascade={"persist"})
*/
private $warehouseItems;
//...zbędny kod
}
Stany magazynów
/**
* @ORM\Entity(repositoryClass = "Pit\VnetBundle\Repository\WarehouseItemRepository")
* @ORM\Table(name = "warehouses_items")
*/
class WarehouseItem
{
//... zbędny kod
/**
* @var Product
*
* @ORM\ManyToOne(targetEntity="Product")
* @ORM\JoinColumn(name="products_id", referencedColumnName="id", nullable = false)
*/
private $product;
/**
* @var float
*
* @ORM\Column(name="quantity", type = "decimal", scale = 2, nullable=false)
*/
private $quantity;
//...zbędny kod
}
Teraz listując produkty potrzebuję posortować je po ilości co robię wykorzystując repozytorium encji Product. W repozytorium mam złączenie tabel oraz pogrupowanie i policzenie ilości produktów dzięki czemu mogę je właściwie posortować
class ProductRepository extends EntityRepository
{
public function getQueryBuilder()
{
$qb = $this -> createQueryBuilder('p');
$qb
->select('p, wi, SUM(wi.quantity) HIDDEN quantity')
->leftJoin('p.warehouseItems', 'wi')
->groupBy('p.id')
->addOrderBy('quantity', 'ASC')
;
return $qb;
}
}
Do tego momentu nie ma problemu sortowanie działa, listowanie ze stronicowaniem działa jednak na liście chcę wyświetlić stan magazynowy produktu i robię to wykorzystując metodę w encji Product
public function countProductsOnWarehouse()
{
$fCount = 0;
$criteria = Criteria::create()->where(Criteria::expr()->gt("quantity", "0"));
/** @var WarehouseItem $warehouseItem */
foreach ($this->getWarehouseItems()->matching($criteria) as $warehouseItem)
{
$fCount += $warehouseItem->getQuantity();
}
return $fCount;
}
Jeśli nie ma grupowania to metoda działa bez zarzutów jednaj jeśli dodane jest grupowanie po ilości to kolekcja "warehouseItems" jest nieprawidłowa. Jak mogę rozwiązać ten problem ? Podzapytania testowałem i bardzo źle wpływają na wydajność listy. -
Klient ma mieć panel klienta tak jak jest to zrobione np. u operatorów komórkowych. Do tej pory system był wewnętrzną aplikacją z której korzystali pracownicy teraz powstała potrzeba udostępniania części informacji na zewnątrz poprzez panel klienta.
I właśnie pytanie czy:
a) aplikacja główna wystawia API poprzez które inna aplikacja będzie pobierała dane i prezentowała je klientowi,
b) całkowicie osobna aplikacja zasilana cyklicznie w dane przez główną aplikację
c) ... jakaś inna opcja ;) -
Witam,
Chciałem się spytać kogoś to ma większe doświadczenie jak rozwiązujecie problem z dostępem do danych wrażliwych dla firmy. Mianowicie załóżmy, że mamy aplikację typu SAP, w której znajdują się wszystkie dane firmy, faktury, umowy cenniki itd. Chcielibyśmy teraz dać jakiemuś naszemu klientowi dostęp do np. faktur które dla niego wystawiamy. Jednak istnieje duże ryzyko, że przez jakikolwiek błąd może uzyskać dostęp do danych, których nie powinien widzieć. Czy tego typu panele wystawiać jako osobne aplikacje, które są zasilane przez serwer czy też macie jakieś inne sprawdzone rozwiązania ? -
Maciej G.:
Marcin L.:
Dzięki za odpowiedź, ale z tego co patrzyłem to lsusb podaje mi listę podłączonych urządzeń pod USB, a ja potrzebuję listę dostępnych portów oraz informacje o nich, gdyż chciałbym je monitorować. Chciałbym aby aplikacja docelowo pobierała informację o liście dostępnych portów, a następnie sprawdzała czy jest do nich podłączone urządzenie w zależności od portu będzie inna funkcja urządzenia. dlatego tak ważna jest informacja o porcie.
Zobacz ten link:
http://www.linuxnix.com/find-usb-device-details-in-lin...
Pozdrawiam.
Wielkie dzięki wszystkim za naprowadzenie na rozwiązanie problemu. Jako że rozwiązania najprostsze są najlepsze to zdefiniowałem własne reguły udev posiłkując się danymi urządzenia dostarczanymi przez:
udevadm info -a -n /dev/ttyUSB1
-
Dzięki za odpowiedź, ale z tego co patrzyłem to lsusb podaje mi listę podłączonych urządzeń pod USB, a ja potrzebuję listę dostępnych portów oraz informacje o nich, gdyż chciałbym je monitorować. Chciałbym aby aplikacja docelowo pobierała informację o liście dostępnych portów, a następnie sprawdzała czy jest do nich podłączone urządzenie w zależności od portu będzie inna funkcja urządzenia. dlatego tak ważna jest informacja o porcie.
-
Witam,
Chciałbym określić adresację portów USB znajdujących się w komputerze tak aby odwołując się do jakiejś lokalizacji w systemie mieć pewność że dana lokalizacja to określony port USB. Jak można zrobić to najefektywniej ? -
Witam,
Czy ktoś z grupowiczów może spotkał się z biblioteką, która funkcjonalnością zbliżyła by się do wyszukiwarki Gmail-a ? Chodzi mi o podpowiedzi specjalnych tagów i ich uzupełnianie. -
Jeśli chodzi Ci o akcję kontrolera to masz do dyspozycji:
...
public function JakasAkcjaAction()
{
...
$html = $this->renderView('DemoBundle:Default:index.html.twig');
...
return $html;
}
...
-
Witam,
Czy macie jakiś sprawdzony sposób na połączenie Symfony z plikami Access-a (MDB) poprzez ODBC. Potrzebuję się połączyć z tak przygotowaną bazą i pobrać z niej dane najlepiej wykorzystując Symfony. Ktoś może ma jakieś doświadczenia z tego typu bazami ? -
Witam,
Mam napisaną aplikację pod Windowsa i potrzebuję ją teraz uruchomić z poziomu PHP tak aby zostało wyświetlone jej okno. Czy jest to możliwe bo jak do tej pory nie udało mi się tego osiągnąć z wykorzystaniem standardowych poleceń "exec, system itp." -
Witam,
Mam problem z wyświetleniem błędów jakie wystąpiły w walidacji kolekcji. Mam formularz "ProductType"
class ProductType extends AbstractType
{
public function buildForm(FormBuilderInterface $builderInterface, array $options)
{
$builderInterface -> add('items', 'collection', array(
'type' => new ProductItemType(),
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
'cascade_validation' => true,
))
;
}
public function setDefaultOptions(OptionsResolverInterface $resolverInterface)
{
$resolverInterface -> setDefaults(array(
'data_class' => 'Pit\VnetBundle\Entity\Product',
'cascade_validation' => true,
));
}
public function getName()
{
return 'pit_vnetbundle_product';
}
}
Jak widać ma on kolekcję "items" typu "ProductItemType" (inne pola pominąłem aby było przejrzyściej).
class ProductItemType extends AbstractType
{
public function buildForm(FormBuilderInterface $builderInterface, array $options)
{
$builderInterface
-> add('productRelated', 'entity', array(
'label' => 'Produkt powiązany:',
'class' => 'PitVnetBundle:Product',
'property' => 'name',
'empty_value' => ' - wybierz - ',
))
-> add('quantity', 'text', array(
'label' => 'Ilość:',
))
;
}
public function setDefaultOptions(OptionsResolverInterface $resolverInterface)
{
$resolverInterface -> setDefaults(array(
'data_class' => 'Pit\VnetBundle\Entity\ProductItem',
));
}
public function getName()
{
return 'pit_vnetbundle_product_item';
}
}
W przypadku gdy któreś z pól nie przejdzie walidacji błędy wyświetlają się przy danym polu prawidłowo. Jednak, gdy błąd wystąpi w kolekcji dostaję jedynie komunikat, że formularz nie przeszedł walidacji zaś przy polu z kolekcji nie pojawia się informacja o błędzie. Jakaś podpowiedź gdzie szukać problemu ?? -
Mały postęp w poszukiwaniach, isset zwraca false dla wywołania:
isset($this->_translate[$locale][$messageId])
Przy czym array_key_exists zwraca true. Co ciekawe bo jak przeprowadzam testy na pliku php ze zdefiniowaną tablicą to obie funkcje zwracają oczekiwane wartości, jakiś pomysł co może być przyczyną takiego zachowania ? -
Witam,
Z czego może wynikać problem z brakiem tłumaczeń dla słów / zwrotów które mają w sobie polskie znaki ? W przypadku innych zwrotów / słów nie ma problemu, są tłumaczone. Podejrzewam konfigurację, gdyż na mojej wersji deweloperskiej Apache2 + MySQL wszystko jest ok, wersja produkcyjna Nginx + MariaDB. Jakieś pomysły ? -
Witam,
Zastanawiam się nad sensem zastosowania sammy.js w aplikacji, gdzie właściwie byłaby tylko jedna reguła routingu przechwytująca wszystko i przesyłająca ajax-em zapytanie do aplikacji napisanej w Symfony, a następnie wyświetlenie zwróconego html-a.
Pytanie brzmi czy ma to sens, czy nie lepiej po prostu wykorzystać jQuery, co o tym myślicie ? -
Nie chcę tworzyć "gęsto" partycji, chciałem tylko mieć dla bieżącego dnia, a kolejne w interwałach miesięcznych. Bieżący dzień dlatego że jest to najczęściej przeszukiwany zakres oraz raport wykorzystujący te dane jest pokazywany użytkownikom po zalogowaniu do systemu.
-
Tomasz, ciekawa sprawa partycjonowanie nigdy nie miałem z tym odczynienia w związku z tym chciałbym dopytać czy jest możliwe ustawienie partycji w ten sposób aby bieżący dzień był na jednaj partycji ?
-
Explain zapytania:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE d range licences_id,date_2 date_2 16 NULL 63076 Using index condition; Using temporary; Using filesort
Indeks który polecił Przemek znacznie poprawił wydajność zapytań jednak dalej operacje na takim zbiorze zabijają urządzenie.
Agregacja na pewno pomoże jednak minimalny interwał to 15 minut, gdyż raporty są kwadransowe więc nie będzie znaczącej różnicy.
Zastanawiam się czy nie podzielić danych na miesiące i umieszczać w osobnych tabelach, zdaje sobie sprawę z "genialności" tego rozwiązania jednak urządzenie na którym to działa w tym momencie zarzyna się przy poważniejszych operacjach na tak dużym zbiorze.