Add VendorStrings to CPUs
This commit is contained in:
parent
7732999fa5
commit
d6abde17ed
@ -211,7 +211,6 @@ return (new Config())
|
|||||||
'no_space_around_double_colon' => true,
|
'no_space_around_double_colon' => true,
|
||||||
'no_spaces_after_function_name' => true,
|
'no_spaces_after_function_name' => true,
|
||||||
'no_spaces_around_offset' => ['positions' => ['inside', 'outside']],
|
'no_spaces_around_offset' => ['positions' => ['inside', 'outside']],
|
||||||
'no_spaces_inside_parenthesis' => true,
|
|
||||||
'no_superfluous_elseif' => true,
|
'no_superfluous_elseif' => true,
|
||||||
'no_superfluous_phpdoc_tags' => [
|
'no_superfluous_phpdoc_tags' => [
|
||||||
'allow_mixed' => true,
|
'allow_mixed' => true,
|
||||||
@ -233,7 +232,7 @@ return (new Config())
|
|||||||
'yield',
|
'yield',
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
'no_unneeded_curly_braces' => ['namespaces' => true],
|
'no_unneeded_braces' => ['namespaces' => true],
|
||||||
'no_unneeded_final_method' => ['private_methods' => true],
|
'no_unneeded_final_method' => ['private_methods' => true],
|
||||||
'no_unneeded_import_alias' => true,
|
'no_unneeded_import_alias' => true,
|
||||||
'no_unreachable_default_argument_value' => true,
|
'no_unreachable_default_argument_value' => true,
|
||||||
@ -478,6 +477,7 @@ return (new Config())
|
|||||||
],
|
],
|
||||||
'single_trait_insert_per_statement' => true,
|
'single_trait_insert_per_statement' => true,
|
||||||
'space_after_semicolon' => ['remove_in_empty_for_expressions' => true],
|
'space_after_semicolon' => ['remove_in_empty_for_expressions' => true],
|
||||||
|
'space_inside_parenthesis' => false,
|
||||||
'standardize_increment' => true,
|
'standardize_increment' => true,
|
||||||
'standardize_not_equals' => true,
|
'standardize_not_equals' => true,
|
||||||
'statement_indentation' => true,
|
'statement_indentation' => true,
|
||||||
|
804
composer.lock
generated
804
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -32,7 +32,7 @@ return static function (ContainerConfigurator $containerConfigurator): void {
|
|||||||
],
|
],
|
||||||
'controller_resolver' => [
|
'controller_resolver' => [
|
||||||
'auto_mapping' => true,
|
'auto_mapping' => true,
|
||||||
]
|
],
|
||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
};
|
};
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
namespace App\Controller;
|
namespace App\Controller;
|
||||||
|
|
||||||
use App\Entity\Cpu;
|
use App\Entity\Cpu;
|
||||||
|
use App\Enum\CpuVendorString;
|
||||||
use App\Form\CpuType;
|
use App\Form\CpuType;
|
||||||
use Doctrine\ORM\EntityManagerInterface;
|
use Doctrine\ORM\EntityManagerInterface;
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
@ -34,16 +35,44 @@ class CpuController extends AbstractController {
|
|||||||
'model' => 'ASC',
|
'model' => 'ASC',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$amd = array_filter($items, static fn (Cpu $cpu) => $cpu->getBrand()->getName() === 'AMD' && $cpu->isReceived());
|
$compare = static fn (Cpu $cpu1, Cpu $cpu2) => $cpu1->getId() <=> $cpu2->getId();
|
||||||
$intel = array_filter($items, static fn (Cpu $cpu) => $cpu->getBrand()->getName() === 'Intel' && $cpu->isReceived());
|
$filterByVendor = static function(array $items, CpuVendorString $vendorString): array
|
||||||
$others = array_filter($items, static fn (Cpu $cpu) => ( ! in_array($cpu->getBrand()->getName(), ['AMD', 'Intel'], TRUE)) && $cpu->isReceived());
|
{
|
||||||
|
return array_filter($items, static fn (Cpu $cpu) => $cpu->getVendorString() === $vendorString);
|
||||||
|
};
|
||||||
|
|
||||||
$notReceived = array_filter($items, static fn (CPU $cpu) => $cpu->isReceived() === FALSE);
|
$notReceived = array_filter($items, static fn (CPU $cpu) => $cpu->isReceived() === FALSE);
|
||||||
|
$items = array_udiff($items, $notReceived, $compare);
|
||||||
|
$noVendor = array_filter($items, static fn (Cpu $cpu) => $cpu->getVendorString() === null || $cpu->getVendorString() === '');
|
||||||
|
$items = array_udiff($items, $noVendor, $compare);
|
||||||
|
$amd = $filterByVendor($items, CpuVendorString::AMD);
|
||||||
|
$intel = $filterByVendor($items, CpuVendorString::INTEL);
|
||||||
|
$centaur = $filterByVendor($items, CpuVendorString::CENTAUR);
|
||||||
|
$cyrix = $filterByVendor($items, CpuVendorString::CYRIX);
|
||||||
|
$others = array_udiff($items, $amd, $intel, $centaur, $cyrix, $compare);
|
||||||
|
|
||||||
|
$sort = static function (Cpu $cpu1, Cpu $cpu2) {
|
||||||
|
$brandSort = $cpu1->getBrand()->getName() <=> $cpu2->getBrand()->getName();
|
||||||
|
$modelSort = $cpu1->getProductLine() <=> $cpu2->getProductLine();
|
||||||
|
|
||||||
|
return ($brandSort !== 0) ? $brandSort : $modelSort;
|
||||||
|
};
|
||||||
|
usort($notReceived, $sort);
|
||||||
|
usort($noVendor, $sort);
|
||||||
|
usort($amd, $sort);
|
||||||
|
usort($intel, $sort);
|
||||||
|
usort($centaur, $sort);
|
||||||
|
usort($cyrix, $sort);
|
||||||
|
usort($others, $sort);
|
||||||
|
|
||||||
return $this->render($template, [
|
return $this->render($template, [
|
||||||
'all' => [
|
'all' => [
|
||||||
'not_acquired' => $notReceived,
|
'not_acquired' => $notReceived,
|
||||||
'amd' => $amd,
|
'amd' => $amd,
|
||||||
'intel' => $intel,
|
'intel' => $intel,
|
||||||
|
'centaur' => $centaur,
|
||||||
|
'cyrix' => $cyrix,
|
||||||
|
'no_vendor' => $noVendor,
|
||||||
'others' => $others,
|
'others' => $others,
|
||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Entity;
|
namespace App\Entity;
|
||||||
|
|
||||||
use App\Enum\CpuArchitecture;
|
use App\Enum\{CpuArchitecture, CpuVendorString};
|
||||||
use Doctrine\Common\Collections\{ArrayCollection, Collection};
|
use Doctrine\Common\Collections\{ArrayCollection, Collection};
|
||||||
use Doctrine\ORM\Mapping as ORM;
|
use Doctrine\ORM\Mapping as ORM;
|
||||||
|
|
||||||
@ -15,6 +15,8 @@ trait CpuBase {
|
|||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
// CPU Specs
|
// CPU Specs
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
|
#[ORM\Column('vendor_string', type: 'string', length: 12, nullable: true, enumType: CpuVendorString::class)]
|
||||||
|
private ?CpuVendorString $vendorString = null;
|
||||||
|
|
||||||
#[ORM\Column('architecture', type: 'string', enumType: CpuArchitecture::class)]
|
#[ORM\Column('architecture', type: 'string', enumType: CpuArchitecture::class)]
|
||||||
private CpuArchitecture $architecture;
|
private CpuArchitecture $architecture;
|
||||||
|
@ -20,10 +20,10 @@ trait GetSet {
|
|||||||
|
|
||||||
public function __set(string $name, mixed $value): void
|
public function __set(string $name, mixed $value): void
|
||||||
{
|
{
|
||||||
if ( ! property_exists($this, $name))
|
// if ( ! property_exists($this, $name))
|
||||||
{
|
// {
|
||||||
throw new InvalidArgumentException("Undefined property: {$name}");
|
// throw new InvalidArgumentException("Undefined property: {$name}");
|
||||||
}
|
// }
|
||||||
|
|
||||||
$this->$name = $value;
|
$this->$name = $value;
|
||||||
}
|
}
|
||||||
|
@ -3,26 +3,68 @@
|
|||||||
namespace App\Enum;
|
namespace App\Enum;
|
||||||
|
|
||||||
enum CardBus: string {
|
enum CardBus: string {
|
||||||
|
// PCIe 1.0
|
||||||
|
case PCIE_10_1 = 'PCIe 1.0 x1';
|
||||||
|
case PCIE_10_4 = 'PCIe 1.0 x4';
|
||||||
|
case PCIE_10_8 = 'PCIe 1.0 x8';
|
||||||
case PCIE_10_16 = 'PCIe 1.0 x16';
|
case PCIE_10_16 = 'PCIe 1.0 x16';
|
||||||
|
|
||||||
|
// PCIe 1.1
|
||||||
|
case PCIE_11_1 = 'PCIe 1.1 x1';
|
||||||
|
case PCIE_11_4 = 'PCIe 1.1 x4';
|
||||||
|
case PCIE_11_8 = 'PCIe 1.1 x8';
|
||||||
case PCIE_11_16 = 'PCIe 1.1 x16';
|
case PCIE_11_16 = 'PCIe 1.1 x16';
|
||||||
|
|
||||||
|
// PCIe 2.0
|
||||||
|
case PCIE_20_1 = 'PCIe 2.0 x1';
|
||||||
|
case PCIE_20_4 = 'PCIe 2.0 x4';
|
||||||
|
case PCIE_20_8 = 'PCIe 2.0 x8';
|
||||||
case PCIE_20_16 = 'PCIe 2.0 x16';
|
case PCIE_20_16 = 'PCIe 2.0 x16';
|
||||||
|
|
||||||
|
// PCIe 3.0
|
||||||
|
case PCIE_30_1 = 'PCIe 3.0 x1';
|
||||||
|
case PCIE_30_4 = 'PCIe 3.0 x4';
|
||||||
case PCIE_30_8 = 'PCIe 3.0 x8';
|
case PCIE_30_8 = 'PCIe 3.0 x8';
|
||||||
case PCIE_30_16 = 'PCIe 3.0 x16';
|
case PCIE_30_16 = 'PCIe 3.0 x16';
|
||||||
|
|
||||||
|
// PCIe 4.0
|
||||||
|
case PCIE_40_1 = 'PCIe 4.0 x1';
|
||||||
case PCIE_40_4 = 'PCIe 4.0 x4';
|
case PCIE_40_4 = 'PCIe 4.0 x4';
|
||||||
case PCIE_40_8 = 'PCIe 4.0 x8';
|
case PCIE_40_8 = 'PCIe 4.0 x8';
|
||||||
case PCIE_40_16 = 'PCIe 4.0 x16';
|
case PCIE_40_16 = 'PCIe 4.0 x16';
|
||||||
|
|
||||||
|
// PCIe 5.0
|
||||||
|
case PCIE_50_1 = 'PCIe 5.0 x1';
|
||||||
case PCIE_50_4 = 'PCIe 5.0 x4';
|
case PCIE_50_4 = 'PCIe 5.0 x4';
|
||||||
case PCIE_50_8 = 'PCIe 5.0 x8';
|
case PCIE_50_8 = 'PCIe 5.0 x8';
|
||||||
case PCIE_50_16 = 'PCIe 5.0 x16';
|
case PCIE_50_16 = 'PCIe 5.0 x16';
|
||||||
|
|
||||||
|
// Future standards
|
||||||
|
/*
|
||||||
|
// PCIe 6.0
|
||||||
|
case PCIE_60_1 = 'PCIe 6.0 x1';
|
||||||
|
case PCIE_60_4 = 'PCIe 6.0 x4';
|
||||||
|
case PCIE_60_8 = 'PCIe 6.0 x8';
|
||||||
|
case PCIE_60_16 = 'PCIe 6.0 x16';
|
||||||
|
|
||||||
|
// PCIe 7.0
|
||||||
|
case PCIE_70_1 = 'PCIe 7.0 x1';
|
||||||
|
case PCIE_70_4 = 'PCIe 7.0 x4';
|
||||||
|
case PCIE_70_8 = 'PCIe 7.0 x8';
|
||||||
|
case PCIE_70_16 = 'PCIe 7.0 x16';
|
||||||
|
*/
|
||||||
|
|
||||||
|
// PCI
|
||||||
case PCI_33 = 'PCI 33';
|
case PCI_33 = 'PCI 33';
|
||||||
case PCI_33V_33 = '3.3V PCI 33';
|
case PCI_33V_33 = '3.3V PCI 33';
|
||||||
|
|
||||||
|
// AGP
|
||||||
case AGP_1X = 'AGP 1x';
|
case AGP_1X = 'AGP 1x';
|
||||||
case AGP_2X = 'AGP 2x';
|
case AGP_2X = 'AGP 2x';
|
||||||
case AGP_4X = 'AGP 4x';
|
case AGP_4X = 'AGP 4x';
|
||||||
case AGP_8X = 'AGP 8x';
|
case AGP_8X = 'AGP 8x';
|
||||||
|
|
||||||
|
// Etc.
|
||||||
case ISA_8 = '8-bit ISA';
|
case ISA_8 = '8-bit ISA';
|
||||||
case ISA_16 = '16-bit ISA';
|
case ISA_16 = '16-bit ISA';
|
||||||
case ISA_VLB = 'VLB';
|
case ISA_VLB = 'VLB';
|
||||||
@ -40,11 +82,15 @@ enum CardBus: string {
|
|||||||
$isa = $filter('ISA_');
|
$isa = $filter('ISA_');
|
||||||
|
|
||||||
$pcie16 = array_filter($pcie, static fn (CardBus $case) => str_ends_with($case->name, '_16'));
|
$pcie16 = array_filter($pcie, static fn (CardBus $case) => str_ends_with($case->name, '_16'));
|
||||||
$pcieOther = array_udiff($pcie, $pcie16, static fn ($a, $b) => $a->name <=> $b->name);
|
$pcie8 = array_filter($pcie, static fn (CardBus $case) => str_ends_with($case->name, '_8'));
|
||||||
|
$pcie4 = array_filter($pcie, static fn (CardBus $case) => str_ends_with($case->name, '_4'));
|
||||||
|
$pcie1 = array_filter($pcie, static fn (CardBus $case) => str_ends_with($case->name, '_1'));
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'PCI Express x16' => $pcie16,
|
'PCIe x16' => $pcie16,
|
||||||
'PCI Express Other' => $pcieOther,
|
'PCIe x8' => $pcie8,
|
||||||
|
'PCIe x4' => $pcie4,
|
||||||
|
'PCIe x1' => $pcie1,
|
||||||
'AGP' => $agp,
|
'AGP' => $agp,
|
||||||
'PCI' => $pci,
|
'PCI' => $pci,
|
||||||
'ISA' => $isa,
|
'ISA' => $isa,
|
||||||
|
37
src/Enum/CpuVendorString.php
Normal file
37
src/Enum/CpuVendorString.php
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<?php declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace App\Enum;
|
||||||
|
|
||||||
|
enum CpuVendorString: string {
|
||||||
|
case AMD = 'AuthenticAMD';
|
||||||
|
case CENTAUR = 'CentaurHauls';
|
||||||
|
case CYRIX = 'CyrixInstead';
|
||||||
|
case INTEL = 'GenuineIntel';
|
||||||
|
case NATSEMI = "Geode\u{00A0}by\u{00A0}NSC";
|
||||||
|
case NEXGEN = 'NexGenDriven';
|
||||||
|
case RISE = 'RiseRiseRise';
|
||||||
|
case SIS = "SiS\u{00A0}SiS\u{00A0}SiS\u{00A0}";
|
||||||
|
case TRANSMETA = 'GenuineTMx86';
|
||||||
|
case UMC = "UMC\u{00A0}UMC\u{00A0}UMC\u{00A0}";
|
||||||
|
|
||||||
|
public static function getGroups(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'Common' => [
|
||||||
|
null,
|
||||||
|
self::AMD,
|
||||||
|
self::INTEL,
|
||||||
|
],
|
||||||
|
'Others' => [
|
||||||
|
self::CENTAUR,
|
||||||
|
self::CYRIX,
|
||||||
|
self::NATSEMI,
|
||||||
|
self::NEXGEN,
|
||||||
|
self::RISE,
|
||||||
|
self::SIS,
|
||||||
|
self::TRANSMETA,
|
||||||
|
self::UMC,
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
@ -3,10 +3,11 @@
|
|||||||
namespace App\Enum;
|
namespace App\Enum;
|
||||||
|
|
||||||
enum SocketType: string {
|
enum SocketType: string {
|
||||||
case DUAL_INLINE_PACKAGE = 'DIP';
|
|
||||||
case LEAD_LESS_CHIP_CARRIER = 'LLCC';
|
|
||||||
case PLASTIC_LEADED_CHIP_CARRIER = 'PLCC';
|
|
||||||
case PIN_GRID_ARRAY = 'PGA';
|
case PIN_GRID_ARRAY = 'PGA';
|
||||||
case SLOT = 'Slot';
|
|
||||||
case LAND_GRID_ARRAY = 'LGA';
|
case LAND_GRID_ARRAY = 'LGA';
|
||||||
|
case BALL_GRID_ARRAY = 'BGA';
|
||||||
|
case LEAD_LESS_CHIP_CARRIER = 'LLCC';
|
||||||
|
case DUAL_INLINE_PACKAGE = 'DIP';
|
||||||
|
case PLASTIC_LEADED_CHIP_CARRIER = 'PLCC';
|
||||||
|
case SLOT = 'Slot';
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Form;
|
namespace App\Form;
|
||||||
|
|
||||||
|
use App\Enum\CpuVendorString;
|
||||||
use App\Entity\
|
use App\Entity\
|
||||||
{Brand, Cpu, Socket};
|
{Brand, Cpu, Socket};
|
||||||
use App\Enum\CpuArchitecture;
|
use App\Enum\CpuArchitecture;
|
||||||
@ -26,6 +27,11 @@ class CpuType extends AbstractType {
|
|||||||
'class' => Brand::class,
|
'class' => Brand::class,
|
||||||
'query_builder' => self::filterBrands('cpu'),
|
'query_builder' => self::filterBrands('cpu'),
|
||||||
])
|
])
|
||||||
|
->add('vendorString', EnumType::class, [
|
||||||
|
'class' => CpuVendorString::class,
|
||||||
|
'choice_label' => static fn (UnitEnum|NULL $choice): string => ($choice !== null) ? $choice->value : '(None)',
|
||||||
|
'choices' => CpuVendorString::getGroups(),
|
||||||
|
])
|
||||||
->add('sockets', EntityType::class, [
|
->add('sockets', EntityType::class, [
|
||||||
'class' => Socket::class,
|
'class' => Socket::class,
|
||||||
'multiple' => true,
|
'multiple' => true,
|
||||||
|
@ -18,8 +18,6 @@ class SocketTypeForm extends AbstractType {
|
|||||||
->add('brand', EntityType::class, [
|
->add('brand', EntityType::class, [
|
||||||
'class' => Brand::class,
|
'class' => Brand::class,
|
||||||
'query_builder' => self::getSocketBrands(),
|
'query_builder' => self::getSocketBrands(),
|
||||||
'placeholder' => '[Generic]',
|
|
||||||
'required' => false,
|
|
||||||
])
|
])
|
||||||
->add('name')
|
->add('name')
|
||||||
->add('otherName')
|
->add('otherName')
|
||||||
|
34
src/Migrations/Version20240509142844.php
Normal file
34
src/Migrations/Version20240509142844.php
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace App\Migrations;
|
||||||
|
|
||||||
|
use Doctrine\DBAL\Schema\Schema;
|
||||||
|
use Doctrine\Migrations\AbstractMigration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Auto-generated Migration: Please modify to your needs!
|
||||||
|
*/
|
||||||
|
final class Version20240509142844 extends AbstractMigration
|
||||||
|
{
|
||||||
|
public function getDescription(): string
|
||||||
|
{
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function up(Schema $schema): void
|
||||||
|
{
|
||||||
|
// this up() migration is auto-generated, please modify it to your needs
|
||||||
|
$this->addSql('ALTER TABLE collection.cpu ADD vendor_string VARCHAR(12) DEFAULT NULL');
|
||||||
|
$this->addSql('ALTER TABLE collection.previously_owned_cpu ADD vendor_string VARCHAR(12) DEFAULT NULL');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down(Schema $schema): void
|
||||||
|
{
|
||||||
|
// this down() migration is auto-generated, please modify it to your needs
|
||||||
|
$this->addSql('CREATE SCHEMA public');
|
||||||
|
$this->addSql('ALTER TABLE collection.cpu DROP vendor_string');
|
||||||
|
$this->addSql('ALTER TABLE collection.previously_owned_cpu DROP vendor_string');
|
||||||
|
}
|
||||||
|
}
|
@ -20,9 +20,10 @@
|
|||||||
<div class="grid-x grid-margin-x">
|
<div class="grid-x grid-margin-x">
|
||||||
<div class="cell">{{ form_row(form.architecture) }}</div>
|
<div class="cell">{{ form_row(form.architecture) }}</div>
|
||||||
<div class="cell">{{ form_row(form.sockets) }}</div>
|
<div class="cell">{{ form_row(form.sockets) }}</div>
|
||||||
<div class="cell medium-4">{{ form_row(form.brand) }}</div>
|
<div class="cell medium-6">{{ form_row(form.brand) }}</div>
|
||||||
<div class="cell medium-4">{{ form_row(form.productLine) }}</div>
|
<div class="cell medium-6">{{ form_row(form.vendorString) }}</div>
|
||||||
<div class="cell medium-4">{{ form_row(form.model) }}</div>
|
<div class="cell medium-6">{{ form_row(form.productLine) }}</div>
|
||||||
|
<div class="cell medium-6">{{ form_row(form.model) }}</div>
|
||||||
<div class="cell medium-6">{{ form_row(form.partNumber) }}</div>
|
<div class="cell medium-6">{{ form_row(form.partNumber) }}</div>
|
||||||
<div class="cell medium-6">{{ form_row(form.lotNumber) }}</div>
|
<div class="cell medium-6">{{ form_row(form.lotNumber) }}</div>
|
||||||
<div class="cell medium-6">{{ form_row(form.microArchitecture) }}</div>
|
<div class="cell medium-6">{{ form_row(form.microArchitecture) }}</div>
|
||||||
|
@ -31,10 +31,18 @@
|
|||||||
<li class="tabs-title">
|
<li class="tabs-title">
|
||||||
<a href="#intel">Intel</a>
|
<a href="#intel">Intel</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="tabs-title">
|
||||||
|
<a href="#centaur">Centaur</a>
|
||||||
|
</li>
|
||||||
|
<li class="tabs-title">
|
||||||
|
<a href="#cyrix">Cyrix</a>
|
||||||
|
</li>
|
||||||
|
<li class="tabs-title">
|
||||||
|
<a href="#no_vendor">No Vendor String</a>
|
||||||
|
</li>
|
||||||
<li class="tabs-title">
|
<li class="tabs-title">
|
||||||
<a href="#others">Others</a>
|
<a href="#others">Others</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="tabs-content" data-tabs-content="classifications">
|
<div class="tabs-content" data-tabs-content="classifications">
|
||||||
@ -44,23 +52,22 @@
|
|||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th> </th>
|
<th> </th>
|
||||||
<th>Id</th>
|
|
||||||
<th>Arch</th>
|
|
||||||
<th>Model</th>
|
<th>Model</th>
|
||||||
|
<!--<th>Id</th>
|
||||||
|
<th>Arch</th>-->
|
||||||
|
{% if label == 'not_acquired' or label == 'others' %}
|
||||||
|
<th>Vendor String</th>
|
||||||
|
{% endif %}
|
||||||
<th>Socket(s)</th>
|
<th>Socket(s)</th>
|
||||||
<th>Part Number</th>
|
<th>Part Number</th>
|
||||||
<th>Lot Number</th>
|
|
||||||
<th>uArch</th>
|
<th>uArch</th>
|
||||||
<th>Code Name</th>
|
<th>Code Name</th>
|
||||||
<th>Speed</th>
|
<th>Speed</th>
|
||||||
<th>C/T</th>
|
<th>C/T</th>
|
||||||
<th>L1 Cache</th>
|
<th>Cache</th>
|
||||||
<th>L2 Cache</th>
|
|
||||||
<th>L3 Cache</th>
|
|
||||||
<th>Igp</th>
|
<th>Igp</th>
|
||||||
<th>Count</th>
|
<th>Count</th>
|
||||||
<th>Usable</th>
|
<th>Usable</th>
|
||||||
<th>Received</th>
|
|
||||||
<th>Notes</th>
|
<th>Notes</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@ -81,9 +88,12 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</td>
|
</td>
|
||||||
<td>{{ cpu.id }}</td>
|
<td>{{ cpu.brand.name }} {{ cpu.productLine }} | {{ cpu.model }}</td>
|
||||||
<td>{{ cpu.architecture.value }}</td>
|
<!-- <td>{{ cpu.id }}</td>
|
||||||
<td>{{ cpu.brand.name }} {{ cpu.productLine }} {{ cpu.model }}</td>
|
<td>{{ cpu.architecture.value }}</td>-->
|
||||||
|
{% if label == 'not_acquired' or label == 'others' %}
|
||||||
|
<td>{% if cpu.vendorString %}{{ cpu.vendorString.value }}{% endif %}</td>
|
||||||
|
{% endif %}
|
||||||
<td>
|
<td>
|
||||||
<ul>
|
<ul>
|
||||||
{% for socket in cpu.sockets %}
|
{% for socket in cpu.sockets %}
|
||||||
@ -92,7 +102,6 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</td>
|
</td>
|
||||||
<td>{{ cpu.partNumber }}</td>
|
<td>{{ cpu.partNumber }}</td>
|
||||||
<td>{{ cpu.lotNumber }}</td>
|
|
||||||
<td>{{ cpu.microArchitecture }}</td>
|
<td>{{ cpu.microArchitecture }}</td>
|
||||||
<td>{{ cpu.codeName }}</td>
|
<td>{{ cpu.codeName }}</td>
|
||||||
<td>
|
<td>
|
||||||
@ -104,27 +113,22 @@
|
|||||||
<td>{{ cpu.cores }} / {{ cpu.threads }}</td>
|
<td>{{ cpu.cores }} / {{ cpu.threads }}</td>
|
||||||
<td>
|
<td>
|
||||||
{% if cpu.L1uCount > 0 %}
|
{% if cpu.L1uCount > 0 %}
|
||||||
{{ cpu.L1uCount }}x {{ cpu.L1uSize }}KB {{ cpu.L1uWay }}-way
|
{{ cpu.L1uCount }}x {{ cpu.L1uSize }}KB {{ cpu.L1uWay }}-way<br />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if cpu.L1cCount > 0 %}
|
{% if cpu.L1cCount > 0 %}
|
||||||
{{ cpu.L1cCount }}x {{ cpu.L1dSize }}KB {{ cpu.L1dWay }}-way data,
|
L1d: {{ cpu.L1cCount }}x {{ cpu.L1dSize }}KB {{ cpu.L1dWay }}-way <br />
|
||||||
{{ cpu.L1dCount }}x {{ cpu.L1cSize }}KB {{ cpu.L1cWay }}-way instruction
|
L1c: {{ cpu.L1dCount }}x {{ cpu.L1cSize }}KB {{ cpu.L1cWay }}-way <br />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
{% if cpu.L2Count > 0 %}
|
{% if cpu.L2Count > 0 %}
|
||||||
{{ cpu.L2Count }}x {{ cpu.L2Size }}KB {{ cpu.L2Way }}-way
|
<br />L2: {{ cpu.L2Count }}x {{ cpu.L2Size }}KB {{ cpu.L2Way }}-way
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
{% if cpu.L3Count > 0 %}
|
{% if cpu.L3Count > 0 %}
|
||||||
{{ cpu.L3Count }}x {{ cpu.L3Size }}KB {{ cpu.L3Way }}-way
|
<br />L3: {{ cpu.L3Count }}x {{ cpu.L3Size }}KB {{ cpu.L3Way }}-way
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
<td>{{ cpu.igp }}</td>
|
<td>{{ cpu.igp }}</td>
|
||||||
<td>{{ cpu.count }}</td>
|
<td>{{ cpu.count }}</td>
|
||||||
<td>{{ cpu.usable ? 'Yes' : 'No' }}</td>
|
<td>{{ cpu.usable ? 'Yes' : 'No' }}</td>
|
||||||
<td>{{ cpu.received ? 'Yes' : 'No' }}</td>
|
|
||||||
<td>{{ cpu.notes }}</td>
|
<td>{{ cpu.notes }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% else %}
|
{% else %}
|
||||||
|
@ -37,6 +37,10 @@
|
|||||||
<th>Architecture</th>
|
<th>Architecture</th>
|
||||||
<td>{{ cpu.architecture.value }}</td>
|
<td>{{ cpu.architecture.value }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>VendorStr</th>
|
||||||
|
<td>{% if cpu.vendorString %}{{ cpu.vendorString.value }}{% endif %}</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Model</th>
|
<th>Model</th>
|
||||||
<td>{{ cpu.brand.name }} {{ cpu.productLine }} {{ cpu.model }}</td>
|
<td>{{ cpu.brand.name }} {{ cpu.productLine }} {{ cpu.model }}</td>
|
||||||
|
@ -20,9 +20,10 @@
|
|||||||
<div class="grid-x grid-margin-x">
|
<div class="grid-x grid-margin-x">
|
||||||
<div class="cell">{{ form_row(form.architecture) }}</div>
|
<div class="cell">{{ form_row(form.architecture) }}</div>
|
||||||
<div class="cell">{{ form_row(form.sockets) }}</div>
|
<div class="cell">{{ form_row(form.sockets) }}</div>
|
||||||
<div class="cell medium-4">{{ form_row(form.brand) }}</div>
|
<div class="cell medium-6">{{ form_row(form.brand) }}</div>
|
||||||
<div class="cell medium-4">{{ form_row(form.productLine) }}</div>
|
<div class="cell medium-6">{{ form_row(form.vendorString) }}</div>
|
||||||
<div class="cell medium-4">{{ form_row(form.model) }}</div>
|
<div class="cell medium-6">{{ form_row(form.productLine) }}</div>
|
||||||
|
<div class="cell medium-6">{{ form_row(form.model) }}</div>
|
||||||
<div class="cell medium-6">{{ form_row(form.partNumber) }}</div>
|
<div class="cell medium-6">{{ form_row(form.partNumber) }}</div>
|
||||||
<div class="cell medium-6">{{ form_row(form.lotNumber) }}</div>
|
<div class="cell medium-6">{{ form_row(form.lotNumber) }}</div>
|
||||||
<div class="cell medium-6">{{ form_row(form.microArchitecture) }}</div>
|
<div class="cell medium-6">{{ form_row(form.microArchitecture) }}</div>
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<th>Id</th>
|
<th>Id</th>
|
||||||
<th>Arch</th>
|
<th>Arch</th>
|
||||||
<th>Model</th>
|
<th>Model</th>
|
||||||
|
<th>Vendor String</th>
|
||||||
<th>Socket(s)</th>
|
<th>Socket(s)</th>
|
||||||
<th>Part Number</th>
|
<th>Part Number</th>
|
||||||
<th>Lot Number</th>
|
<th>Lot Number</th>
|
||||||
@ -49,6 +50,7 @@
|
|||||||
<td>{{ cpu.id }}</td>
|
<td>{{ cpu.id }}</td>
|
||||||
<td>{{ cpu.architecture.value }}</td>
|
<td>{{ cpu.architecture.value }}</td>
|
||||||
<td>{{ cpu.brand.name }} {{ cpu.productLine }} {{ cpu.model }}</td>
|
<td>{{ cpu.brand.name }} {{ cpu.productLine }} {{ cpu.model }}</td>
|
||||||
|
<td>{% if cpu.vendorString %}{{ cpu.vendorString.value }}{% endif %}</td>
|
||||||
<td>
|
<td>
|
||||||
<ul>
|
<ul>
|
||||||
{% for socket in cpu.sockets %}
|
{% for socket in cpu.sockets %}
|
||||||
|
@ -35,6 +35,10 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>Architecture</th>
|
<th>Architecture</th>
|
||||||
<td>{{ previously_owned_cpu.architecture }}</td>
|
<td>{{ previously_owned_cpu.architecture }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>VendorStr</th>
|
||||||
|
<td>{% if previously_owned_cpu.vendorString %}{{ previously_owned_cpu.vendorString.value }}{% endif %}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>ProductLine</th>
|
<th>ProductLine</th>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"require": {
|
"require": {
|
||||||
"friendsofphp/php-cs-fixer": "^3.6",
|
"friendsofphp/php-cs-fixer": "^3.52.1",
|
||||||
"rector/rector": "^0.17.6"
|
"rector/rector": "^1.0.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
637
tools/composer.lock
generated
637
tools/composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -33,6 +33,7 @@ return [
|
|||||||
'arm' => 'arm',
|
'arm' => 'arm',
|
||||||
'arm64' => 'arm64',
|
'arm64' => 'arm64',
|
||||||
'B & W' => 'B & W',
|
'B & W' => 'B & W',
|
||||||
|
'BALL_GRID_ARRAY' => 'BGA',
|
||||||
'Base speed' => 'Base Speed',
|
'Base speed' => 'Base Speed',
|
||||||
'Batteries' => 'Batteries',
|
'Batteries' => 'Batteries',
|
||||||
'Battery type' => 'Battery Type',
|
'Battery type' => 'Battery Type',
|
||||||
@ -149,13 +150,28 @@ return [
|
|||||||
'PCIe 6-pin Power Connectors' => 'PCIe 6-pin Power Connectors',
|
'PCIe 6-pin Power Connectors' => 'PCIe 6-pin Power Connectors',
|
||||||
'PCIe 8-pin Power Connectors' => 'PCIe 8-pin Power Connectors',
|
'PCIe 8-pin Power Connectors' => 'PCIe 8-pin Power Connectors',
|
||||||
'PCIe 1.0 x16' => 'PCIe 1.0 x16',
|
'PCIe 1.0 x16' => 'PCIe 1.0 x16',
|
||||||
|
'PCIe 1.0 x8' => 'PCIe 1.0 x8',
|
||||||
|
'PCIe 1.0 x4' => 'PCIe 1.0 x4',
|
||||||
|
'PCIe 1.0 x1' => 'PCIe 1.0 x1',
|
||||||
'PCIe 1.1 x16' => 'PCIe 1.1 x16',
|
'PCIe 1.1 x16' => 'PCIe 1.1 x16',
|
||||||
|
'PCIe 1.1 x8' => 'PCIe 1.1 x8',
|
||||||
|
'PCIe 1.1 x4' => 'PCIe 1.1 x4',
|
||||||
|
'PCIe 1.1 x1' => 'PCIe 1.1 x1',
|
||||||
'PCIe 2.0 x16' => 'PCIe 2.0 x16',
|
'PCIe 2.0 x16' => 'PCIe 2.0 x16',
|
||||||
|
'PCIe 2.0 x8' => 'PCIe 2.0 x8',
|
||||||
|
'PCIe 2.0 x4' => 'PCIe 2.0 x4',
|
||||||
|
'PCIe 2.0 x1' => 'PCIe 2.0 x1',
|
||||||
|
'PCIe 3.0 x1' => 'PCIe 3.0 x1',
|
||||||
|
'PCIe 3.0 x4' => 'PCIe 3.0 x4',
|
||||||
'PCIe 3.0 x8' => 'PCIe 3.0 x8',
|
'PCIe 3.0 x8' => 'PCIe 3.0 x8',
|
||||||
'PCIe 3.0 x16' => 'PCIe 3.0 x16',
|
'PCIe 3.0 x16' => 'PCIe 3.0 x16',
|
||||||
|
'PCIe 4.0 x1' => 'PCIe 4.0 x1',
|
||||||
'PCIe 4.0 x4' => 'PCIe 4.0 x4',
|
'PCIe 4.0 x4' => 'PCIe 4.0 x4',
|
||||||
'PCIe 4.0 x8' => 'PCIe 4.0 x8',
|
'PCIe 4.0 x8' => 'PCIe 4.0 x8',
|
||||||
'PCIe 4.0 x16' => 'PCIe 4.0 x16',
|
'PCIe 4.0 x16' => 'PCIe 4.0 x16',
|
||||||
|
'PCIe 5.0 x1' => 'PCIe 5.0 x1',
|
||||||
|
'PCIe 5.0 x4' => 'PCIe 5.0 x4',
|
||||||
|
'PCIe 5.0 x8' => 'PCIe 5.0 x8',
|
||||||
'PCIe 5.0 x16' => 'PCIe 5.0 x16',
|
'PCIe 5.0 x16' => 'PCIe 5.0 x16',
|
||||||
'PCIe x1' => 'PCIe x1',
|
'PCIe x1' => 'PCIe x1',
|
||||||
'PCIe x4' => 'PCIe x4',
|
'PCIe x4' => 'PCIe x4',
|
||||||
|
Loading…
Reference in New Issue
Block a user